Как получить цвет фона текста в PyMuPDF

Я пытаюсь понять, могу ли я определить возможные заголовки таблиц в таблице внутри PDF, используя цвет фона и переднего плана текста. С извлечением текста PyMuPDF я смог получить цвет переднего плана. Интересно, есть ли способ получить цвет фона.

Я использую pymupdf 1.16.2 с python 3.7. Я проверил документацию, но смог найти только одно поле цвета, которое связано с цветом текста, а не цветом фона.

если кто-нибудь знает, как получить цвет фона с помощью pyMuPDF или может быть какой-то другой пакет, пожалуйста, дайте мне знать


person Suvin K S    schedule 26.09.2019    source источник


Ответы (1)


Мне нужна была похожая функция, но я не смог найти ее в PyMuPDF, поэтому я пишу функцию для получения цвета пикселя в верхнем левом блоке, содержащем текст.

def getText2(page: fitz.Page, zoom_f=3) -> dict:
    """
    Function similar to fitz.Page.getText("dict"). But the returned dict
    also contains a key "bg_color" with color tuple as value for each block in "blocks".
    """
    # Retrieves the content of the page
    all_words = page.getText("dict")

    # Transform page into PIL.Image
    mat = fitz.Matrix(zoom_f, zoom_f)
    pixmap = page.getPixmap(mat)
    img = Image.open(io.BytesIO(pixmap.getPNGData()))
    img_border = fitz.Rect(0, 0, img.width, img.height)
    for block in all_words['blocks']:
        # Retrieve only text block (type 0)
        if block['type'] == 0:
            rect = fitz.Rect(*tuple(xy * zoom_f for xy in block['bbox']))
            if img_border.contains(rect):
                color = img.getpixel((rect.x0, rect.y0))
                block['bg_color'] = tuple(c/255 for c in color)
    return all_words
person Yohann L.    schedule 15.01.2020