You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Yannick Haser (JIRA)" <ji...@apache.org> on 2017/07/04 10:43:00 UTC

[jira] [Updated] (PDFBOX-3854) PDDeviceRGB.toRGBImage does not return a RGB-Typed-Image

     [ https://issues.apache.org/jira/browse/PDFBOX-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yannick Haser updated PDFBOX-3854:
----------------------------------
    Attachment: rgbImageExample0.pdf
                Starter.java

Added Simple-Example-PDF as "ShowCase"
Added Simple ShowCase

Steps:
# Duplicating the File until there are 8 Files present
# Run the Application

My Results:
Without ColorConversion:  811
With ColorConversion: 644

With normal PDFs the gap gets even bigger (Partially I have a Performance-Gap from 50-60%, unfortunally i cannot upload those PDFs)

> 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
>            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
(v6.4.14#64029)

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