()
| 431 | |
| 432 | |
| 433 | def 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] |
nothing calls this directly
no test coverage detected
searching dependent graphs…