diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_insertimage.py	Mon Sep 15 11:37:51 2025 +0200
@@ -0,0 +1,66 @@
+"""
+* 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)