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

Tilman Hausherr commented on PDFBOX-2570:
-----------------------------------------

With refactoring, I mean refactoring of PDLab and PDCalRGB, because these have 
too many common code.

What you are intending to do with PDGamma would make everything much more 
complex, i.e. PDGamma would probably need to have a split personality, i.e. 
once an array and once a float.

There's another difference, the conversion to RGB in CalGray must use the 
whitepoint, while in CalRGB the whitepoint is not mentioned directly. However I 
couldn't find any example where the "new" conversion made any difference. One 
could probably just pass the parameter as result.

But IMO CalGray is not a special case of CalRGB like DeviceGray is not a 
special case of DeviceRGB.

> ClassCastException in PDCalGray: COSFloat cannot be cast to COSArray
> --------------------------------------------------------------------
>
>                 Key: PDFBOX-2570
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2570
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Parsing
>    Affects Versions: 2.0.0
>            Reporter: Tilman Hausherr
>            Assignee: Tilman Hausherr
>              Labels: CalGray, CalRGB, regression
>             Fix For: 2.0.0
>
>
> {code}
> INFORMATION: Rendering: PDFBOX-1724.pdf
> java.lang.ClassCastException: org.apache.pdfbox.cos.COSFloat cannot be cast 
> to org.apache.pdfbox.cos.COSArray
>       at 
> org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB.getGamma(PDCalRGB.java:158)
>       at 
> org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB.toRGB(PDCalRGB.java:95)
>       at 
> org.apache.pdfbox.pdmodel.graphics.color.PDCalGray.toRGB(PDCalGray.java:81)
>       at 
> org.apache.pdfbox.pdmodel.graphics.color.PDCIEBasedColorSpace.toRGBImage(PDCIEBasedColorSpace.java:88)
> {code}
> The cause is that in one of the redesigns it was overseen that the Gamma is a 
> single value for CalGray, and not an array like in CalRGB. Thus PDCalGray 
> cannot be extended from PDCalRGB. The bug didn't have an effect because the 
> gamma wasn't used before PDFBOX-2553. Instead I will extend it from 
> PDCIEBasedColorSpace or from a new abstract class PDCalBasedColorSpace.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to