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

John Hewson commented on PDFBOX-2117:
-------------------------------------

{quote}
It seems to me that PDDeviceRGB#toRGBImage() does not do any conversion, it 
just creates a buffered image with sRGB color space and the unchanged original 
data. Would not it be consistent to return the unchanged original value from 
PDDeviceRGB#toRGB() as well? However, when I debug it, the #toRGB() returns 
slightly modified values - which I do not understand since the java doc in 
java.awt.color.ColorSpace#toRGB() tells that it converts values in "this" color 
space into sRGB. If "this color space is sRGB, why should the returned values 
be different?
{quote}

PDFBox has always used Java's sRGB color space to do this conversion, I'm not 
sure what the reasoning behind that is. What you're seeing may be the 
difference between linear RGB and sRGB, though I can't say what the correct 
result should be. "DeviceRGB" is ultimately the decision of the device.

I'm surprised that toRGBImage() is not faster, we saw CMYK images going from 
taking 60sec with toRGB to taking 4 sec with toRGBImage(). In your patch you 
can just return rgbImage.getRaster() because getColorModel() always returns 
sRGB.

> AxialShadingContext is slow
> ---------------------------
>
>                 Key: PDFBOX-2117
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2117
>             Project: PDFBox
>          Issue Type: Improvement
>            Reporter: Petr Slaby
>         Attachments: 000001_MTEXT_CS6.pdf, AxialShading.patch, 
> AxialShading1.patch, AxialShadingContext.java.getrgbimage, 
> Shading2Function2text.pdf, asy-shade.pdf, color_gradient.pdf, 
> shading_pattern.pdf
>
>
> AxialShadingContext#getRaster() is on top of profiler hot spots in documents 
> that use an axial shading. Inside it, the slowest part is calling 
> PDColorSpaceRGB#toRGB() and PDFunctionType3#eval() (in this order).
>   



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to