[ 
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: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to