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

John Hewson edited comment on PDFBOX-2570 at 12/15/14 8:28 PM:
---------------------------------------------------------------

If you have a single-valued gray gamma _x_ then it is equivalent to the RGB 
gamma (r=x, g=x, b=x). All that is needed is to override getGamma() in CalGray 
so that parses a single float.

It's probably best to do this by adding a new constructor to PDGamma which 
takes a single float and populates the RGB value COSArray.


was (Author: jahewson):
If you have a single-valued gray gamma _x_ then it is equivalent to the RGB 
gamma (r=x, g=x, b=x). All that is needed is to override getGamma() in CalGray 
so that parses a single float.

> 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