[
https://issues.apache.org/jira/browse/PDFBOX-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16509705#comment-16509705
]
Jani Pehkonen commented on PDFBOX-3000:
---------------------------------------
[^nonisolated_groups_patch.zip]
I have created a patch that improves the rendering of blend modes in
transparency groups. Previously PDFBox has implemented only isolated (/I true)
transparency groups because groups have been rendered to an image that is
initially fully transparent. To implement non-isolated groups (/I false), we
must follow the PDF spec. Use the group backdrop (copied from parent group or
page) as the initial content of the group image. This allows the group contents
to be blended with the graphics under the group. Finally when the group
rendering is done, we must compute backdrop removal. It ensures the backdrop is
not rendered twice on the parent but it leaves the effects produced by blend
modes.
My patch works if PDFRenderer is rendering to a BufferedImage. If it's
rendering to a Graphics2D object, the page can't provide its pixel data to be
used as a backdrop in groups, so blend modes will produce incorrect colors like
they have done before my patch.
Here is a PDF that shows the difference between isolated and non-isolated
groups when blend modes are used [^isolation.pdf]
> Transparency Group issues
> -------------------------
>
> Key: PDFBOX-3000
> URL: https://issues.apache.org/jira/browse/PDFBOX-3000
> Project: PDFBox
> Issue Type: Bug
> Components: Rendering
> Affects Versions: 2.0.0
> Reporter: John Hewson
> Priority: Major
> Labels: Transparency
> Fix For: 3.0.0 PDFBox
>
> Attachments: 007087-payment-due-p58_reduced2.pdf, BlendModes-rgb.pdf,
> PDFBOX-1697-reduced-rotations.pdf, PDFBOX-2182_mod.pdf, PDFBOX-3400-RGB.pdf,
> PDFBOX-3494_reduced.pdf, PDFBOX-3494_reduced_cropX.pdf, PDFBOX-3564-Mask.pdf,
> PDFBox3359PanelTestEnhanced.java, PDFJS-2845-p1.pdf,
> PDFJS-5526-p13_reduced1.pdf, PDFJS-5526-p13_reduced2.pdf,
> PDFJS-5526-p13_reduced3-nogroup.pdf, PDFJS-5811-2-p3_reduced.pdf,
> PDFJS-5811-2-p3_reduced4.pdf, PDFJS-5811-2-p4_reduced-rotations.pdf,
> PDFJS-5811-2.pdf, PDFJS-5853_reduced.pdf, PDFJS-6967-p8.pdf,
> PDFJS-6967_reduced_outside_softmask.pdf, PDFJS-8136-p1.pdf,
> PDFJS-8136-p1_reduced.pdf, SoftMask-Clipped.pdf, SoftMask.pdf,
> blendmodes.pdf, circle-simple.pdf, ds-firewall-enterprise-p1_reduced.pdf,
> gs-bugzilla689309-reduced-bc0.pdf, gs-bugzilla689309-reduced-bc1.pdf,
> gs-bugzilla689309-reduced.pdf, gs-bugzilla689931_reduced-Multiply.pdf,
> gs-bugzilla689931_reduced-Screen.pdf,
> gs-bugzilla689931_reduced-ScreenBlendPageBackground.pdf,
> gs-bugzilla690022-reduced-rotations-cropbox.pdf,
> gs-bugzilla690022-reduced-rotations.pdf, gs-bugzilla690022_reduced.pdf,
> gs-bugzilla691157.pdf, gs-bugzilla691157_mod_unc.pdf,
> gs-bugzilla691157_mod_unc.png, gs-bugzilla691348.pdf,
> gs-bugzilla691650-2.pdf, gs-bugzilla692217_reduced.pdf,
> gs-bugzilla693134-giant-pattern-reduced.pdf, gs-bugzilla693322_reduced.pdf,
> gs-bugzilla694556-3.pdf, gs-bugzilla695354.pdf,
> gs-bugzilla695582-transparency-fill-stroke.pdf,
> gs-bugzilla695582-transparency-fill-stroke.pdf-1.png, isolation.pdf,
> nonisolated_groups_patch.zip, pop-bugzilla40164.pdf,
> samsung_galaxy_s_4_um-p1_reduced.pdf, snowman-nose-gradient-rgb.pdf,
> snowman-nose-gradient-rgb_reduced-0.6-bad2.pdf,
> snowman-nose-gradient-rgb_reduced-0.7-good2.pdf,
> snowman-nose-gradient-screenshot-comparison-11.12.2016.jpg,
> snowman-nose-gradient.pdf, snowmen-opacity-clipping-masks-2.0.3.png,
> snowmen-opacity-clipping-masks-2.1-SNAPSHOT-10.12.2016.png,
> snowmen-opacity-clipping-masks-2.1.0-SNAPSHOT-2016-12-07.png,
> snowmen-opacity-clipping-masks-adobe-illustrator.png,
> snowmen-opacity-clipping-masks.pdf, softmask-rewrite-alt1.patch,
> softmask-rewrite.patch
>
>
> This is a follow-up issue for transparency group issues from PDFBOX-2423.
> More details to come.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]