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

Tilman Hausherr edited comment on PDFBOX-3854 at 7/5/17 5:48 PM:
-----------------------------------------------------------------

This time I can reproduce it, i.e. speed gets much better. The effect also 
happens if the thread count is identical to the cpu core count.

However, the memory footprint goes up. Calling PDFToImage on your file needs 
-Xmx41m before the change, and -Xmx49m after.


was (Author: tilman):
This time I can reproduce it. It also works if the thread count is identical to 
the cpu core count.

The memory footprint goes up. Calling PDFToImage on your file needs -Xmx41m 
before the change, and -Xmx49m after.

> 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, rgbImageSecondExample.pdf, 
> Starter2.java, 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
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to