MCPcopy Index your code
hub / github.com/pymupdf/PyMuPDF / test_2093

Function test_2093

tests/test_general.py:433–498  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

431
432
433def test_2093():
434 if platform.python_implementation() == 'GraalVM':
435 print(f'test_2093(): Not running because slow on GraalVM.')
436 return
437
438 doc = pymupdf.open(f'{scriptdir}/resources/test2093.pdf')
439
440 def average_color(page):
441 pixmap = page.get_pixmap()
442 p_average = [0] * pixmap.n
443 for y in range(pixmap.height):
444 for x in range(pixmap.width):
445 p = pixmap.pixel(x, y)
446 for i in range(pixmap.n):
447 p_average[i] += p[i]
448 for i in range(pixmap.n):
449 p_average[i] /= (pixmap.height * pixmap.width)
450 return p_average
451
452 page = doc.load_page(0)
453 pixel_average_before = average_color(page)
454
455 rx=135.123
456 ry=123.56878
457 rw=69.8409
458 rh=9.46397
459
460 x0 = rx
461 y0 = ry
462 x1 = rx + rw
463 y1 = ry + rh
464
465 rect = pymupdf.Rect(x0, y0, x1, y1)
466
467 font = pymupdf.Font("Helvetica")
468 fill_color=(0,0,0)
469 page.add_redact_annot(
470 quad=rect,
471 #text="null",
472 fontname=font.name,
473 fontsize=12,
474 align=pymupdf.TEXT_ALIGN_CENTER,
475 fill=fill_color,
476 text_color=(1,1,1),
477 )
478
479 page.apply_redactions()
480 pixel_average_after = average_color(page)
481
482 print(f'pixel_average_before={pixel_average_before!r}')
483 print(f'pixel_average_after={pixel_average_after!r}')
484
485 # Before this bug was fixed (MuPDF-1.22):
486 # pixel_average_before=[130.864323120088, 115.23577810900859, 92.9268559996174]
487 # pixel_average_after=[138.68844553555772, 123.05687162237561, 100.74275056194105]
488 # After fix:
489 # pixel_average_before=[130.864323120088, 115.23577810900859, 92.9268559996174]
490 # pixel_average_after=[130.8889209934799, 115.25722751837269, 92.94327384463327]

Callers

nothing calls this directly

Calls 5

average_colorFunction · 0.85
load_pageMethod · 0.80
add_redact_annotMethod · 0.80
apply_redactionsMethod · 0.80
saveMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…