pdfbox-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yannick Haser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PDFBOX-3854) PDDeviceRGB.toRGBImage does not return a RGB-Typed-Image
Date Wed, 05 Jul 2017 06:05:01 GMT

    [ https://issues.apache.org/jira/browse/PDFBOX-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16074286#comment-16074286

Yannick Haser commented on PDFBOX-3854:

Okay, sorry I couldn't get it to run yesterday evening on my private PC...

Here the update: I investigated it a bit further and created an better example for my case.

# created a "bigger" pdf (30 Sites)
# The Java-File now converts all Pages instead of only the first and skips writing the output
to the Filesystem (not needed in this showcase)
# Fixed the not terminating Showcase

With Flag:
2.0.6: ~24000ms 
2.0.6 with "Quick"Fix: ~12000ms
Without Flag:
2.0.6: ~24000ms
2.0.6 with "Quick"-Fix: ~13000ms 

I'm sorry for uploading a bad showcase first. The issue there was, that most of the "running"
time was I/O-related, because the testcase itself was too slow. ==> The optimization was
not obvious because of normal fluctuation of such tests

> PDDeviceRGB.toRGBImage does not return a RGB-Typed-Image
> --------------------------------------------------------
>                 Key: PDFBOX-3854
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3854
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.6
>            Reporter: Yannick Haser
>         Attachments: rgbImageExample0.pdf, Starter.java
> While converting a PDPage to a BufferedImage (using the PDFRenderer) Images-Resources
located in the PDPage gets loaded in a WriteableRaster and a given Colorspace.
> These get converted to a BufferedImage (with PDDeviceRGB.toRGBImage()). But the Type
of the returing BufferedImage is with the given Raster and Colorspace always from Type "BufferedImage.TYPE_CUSTOM"
instead of the expected "BufferedImage.TYPE_INT_RGB" for example.
> Consequences:
> Image-Processing-Operations with/on BufferedImages with TYPE_CUSTOM are not optimized
in Java (slower) and partialy runs through "Synchronized" Blocks.
> ==> Converting different Documents in different Threads are blocking each other.
> "Quick"-Fix for seeing a Performance-Improvement in a Multithreading Environment:
> {code:title=PDDeviceRGB.java|borderStyle=solid}
> @Override
> public BufferedImage toRGBImage(WritableRaster raster) throws IOException {
> 	init();
> 	ColorModel colorModel = new ComponentColorModel(awtColorSpace, false, false, Transparency.OPAQUE,
> 			raster.getDataBuffer().getDataType());
> 	BufferedImage image = new BufferedImage(colorModel, raster, false, null);
> 	BufferedImage dest = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
> 	ColorConvertOp op = new ColorConvertOp(dest.getColorModel().getColorSpace(), null);
> 	return op.filter(image, dest);
> }
> {code}

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org

View raw message