This commit is contained in:
Julius Unverfehrt 2023-02-02 14:10:32 +01:00
parent c0b41e77b8
commit c4416636c0

View File

@ -136,11 +136,8 @@ def get_image_infos(page: fitz.Page) -> List[dict]:
@lru_cache(maxsize=None)
def xref_to_image(doc, xref) -> Image:
pixmap = fitz.Pixmap(doc, xref)
# FIXME: implement proper logic to determine how many channels the image has
try:
array = np.frombuffer(pixmap.samples, dtype=np.uint8).reshape(pixmap.h, pixmap.w)
except ValueError:
array = np.frombuffer(pixmap.samples, dtype=np.uint8).reshape(pixmap.h, pixmap.w, pixmap.n)
array = np.frombuffer(pixmap.samples, dtype=np.uint8).reshape(pixmap.h, pixmap.w, pixmap.n)
array = array[:, :, 0] if array.shape[2] == 1 else array
return Image.fromarray(array)