MCPcopy Create free account
hub / github.com/pymupdf/PyMuPDF / extractIMGINFO

Method extractIMGINFO

src/__init__.py:16487–16533  ·  view source on GitHub ↗

Return a list with image meta information.

(self, hashes=0)

Source from the content-addressed store, hash-verified

16485 return self._extractText(1)
16486
16487 def extractIMGINFO(self, hashes=0):
16488 """Return a list with image meta information."""
16489 block_n = -1
16490 this_tpage = self.this
16491 rc = []
16492 for block in this_tpage:
16493 block_n += 1
16494 if block.m_internal.type == mupdf.FZ_STEXT_BLOCK_TEXT:
16495 continue
16496 img = block.i_image()
16497 img_size = 0
16498 mask = img.mask()
16499 if mask.m_internal:
16500 has_mask = True
16501 else:
16502 has_mask = False
16503 compr_buff = mupdf.fz_compressed_image_buffer(img)
16504 if compr_buff.m_internal:
16505 img_size = compr_buff.fz_compressed_buffer_size()
16506 compr_buff = None
16507 if hashes:
16508 r = mupdf.FzIrect(FZ_MIN_INF_RECT, FZ_MIN_INF_RECT, FZ_MAX_INF_RECT, FZ_MAX_INF_RECT)
16509 assert mupdf.fz_is_infinite_irect(r)
16510 m = mupdf.FzMatrix(img.w(), 0, 0, img.h(), 0, 0)
16511 pix, w, h = mupdf.fz_get_pixmap_from_image(img, r, m)
16512 digest = mupdf.fz_md5_pixmap2(pix)
16513 digest = bytes(digest)
16514 if img_size == 0:
16515 img_size = img.w() * img.h() * img.n()
16516 cs = mupdf.FzColorspace(mupdf.ll_fz_keep_colorspace(img.m_internal.colorspace))
16517 block_dict = dict()
16518 block_dict[dictkey_number] = block_n
16519 block_dict[dictkey_bbox] = JM_py_from_rect(block.m_internal.bbox)
16520 block_dict[dictkey_matrix] = JM_py_from_matrix(block.i_transform())
16521 block_dict[dictkey_width] = img.w()
16522 block_dict[dictkey_height] = img.h()
16523 block_dict[dictkey_colorspace] = mupdf.fz_colorspace_n(cs)
16524 block_dict[dictkey_cs_name] = mupdf.fz_colorspace_name(cs)
16525 block_dict[dictkey_xres] = img.xres()
16526 block_dict[dictkey_yres] = img.yres()
16527 block_dict[dictkey_bpc] = img.bpc()
16528 block_dict[dictkey_size] = img_size
16529 if hashes:
16530 block_dict["digest"] = digest
16531 block_dict["has-mask"] = has_mask
16532 rc.append(block_dict)
16533 return rc
16534
16535 def extractJSON(self, cb=None, sort=False) -> str:
16536 """Return 'extractDICT' converted to JSON format."""

Callers 2

get_image_infoMethod · 0.80
get_image_infoFunction · 0.80

Calls 8

JM_py_from_rectFunction · 0.85
JM_py_from_matrixFunction · 0.85
wMethod · 0.80
hMethod · 0.80
xresMethod · 0.80
yresMethod · 0.80
nMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected