pdfbox-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tilman Hausherr (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (PDFBOX-3854) PDDeviceRGB.toRGBImage does not return a RGB-Typed-Image
Date Wed, 05 Jul 2017 17:49:00 GMT

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


Mime
View raw message