Mercurial > hgrepos > Python2 > PyMuPDF
view tests/test_insertimage.py @ 1:1d09e1dec1d9 upstream
ADD: PyMuPDF v1.26.4: the original sdist.
It does not yet contain MuPDF. This normally will be downloaded when
building PyMuPDF.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:37:51 +0200 |
| parents | |
| children |
line wrap: on
line source
""" * Insert same image with different rotations in two places of a page. * Extract bboxes and transformation matrices * Assert image locations are inside given rectangles """ import json import os import pymupdf scriptdir = os.path.abspath(os.path.dirname(__file__)) imgfile = os.path.join(scriptdir, "resources", "nur-ruhig.jpg") def test_insert(): doc = pymupdf.open() page = doc.new_page() r1 = pymupdf.Rect(50, 50, 100, 100) r2 = pymupdf.Rect(50, 150, 200, 400) page.insert_image(r1, filename=imgfile) page.insert_image(r2, filename=imgfile, rotate=270) info_list = page.get_image_info() assert len(info_list) == 2 bbox1 = pymupdf.Rect(info_list[0]["bbox"]) bbox2 = pymupdf.Rect(info_list[1]["bbox"]) assert bbox1 in r1 assert bbox2 in r2 def test_compress(): document = pymupdf.open(f'{scriptdir}/resources/2.pdf') document_new = pymupdf.open() for page in document: pixmap = page.get_pixmap( colorspace=pymupdf.csRGB, dpi=72, annots=False, ) page_new = document_new.new_page(-1) page_new.insert_image(rect=page_new.bound(), pixmap=pixmap) document_new.save( f'{scriptdir}/resources/2.pdf.compress.pdf', garbage=3, deflate=True, deflate_images=True, deflate_fonts=True, pretty=True, ) def test_3087(): path = os.path.abspath(f'{__file__}/../../tests/resources/test_3087.pdf') doc = pymupdf.open(path) page = doc[0] print(page.get_images()) base = doc.extract_image(5)["image"] mask = doc.extract_image(5)["image"] page = doc.new_page() page.insert_image(page.rect, stream=base, mask=mask) doc = pymupdf.open(path) page = doc[0] print(page.get_images()) base = doc.extract_image(5)["image"] mask = doc.extract_image(6)["image"] page = doc.new_page() page.insert_image(page.rect, stream=base, mask=mask)
