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

Tilman Hausherr updated PDFBOX-4326:
------------------------------------
    Description: 
There is an EOF exception:
{noformat}
    java.io.EOFException
    at 
javax.imageio.stream.ImageInputStreamImpl.readBits(ImageInputStreamImpl.java:687)
    at 
org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.fromAny(SampledImageReader.java:523)
    at 
org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage(SampledImageReader.java:217)
    at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:418)
    at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:400)
    at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1021) 
{noformat}
The EOF exception is because SampledImageReader expects a stream that is 3x 
longer than actually appears, because the colorspace is said to have 3 colors 
instead of 1. This is because the JPEG2000 plugin returns an image with 
IndexColorModel which references three colors.

There are two ways to solve this and both worked: the slower is to convert to 
RGB which requires another change when reading the raster (because the raster 
is now made if intergers), the faster is to force a gray colorspace. I use the 
later but keep the change I made in passing the raster, we may need it some day.

I'm making the change only for the trunk for now, and to the 2.0 branch after 
release of 2.0.12.

  was:
There is an EOF exception:
{noformat}
    java.io.EOFException
    at 
javax.imageio.stream.ImageInputStreamImpl.readBits(ImageInputStreamImpl.java:687)
    at 
org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.fromAny(SampledImageReader.java:523)
    at 
org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage(SampledImageReader.java:217)
    at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:418)
    at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:400)
    at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1021) 
{noformat}
The EOF exception is because SampledImageReader expects a stream that is 3x 
longer than actually appears, because the colorspace is said to have 3 colors 
instead of 1. This is because the plugin returns an image with IndexColorModel 
which references three colors.

There are two ways to solve this and both worked: the slower is to convert to 
RGB which requires another change when reading the raster (because the raster 
is now made if intergers), the faster is to force a gray colorspace. I use the 
later but keep the change I made in passing the raster, we may need it some day.

I'm making the change only for the trunk for now, and to the 2.0 branch after 
release of 2.0.12.


> PDF with JPEG2000 image can't be rendered
> -----------------------------------------
>
>                 Key: PDFBOX-4326
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4326
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.11
>            Reporter: Tilman Hausherr
>            Assignee: Tilman Hausherr
>            Priority: Major
>              Labels: JPEG2000, JPXDecode, JPXFilter
>             Fix For: 2.0.13, 3.0.0 PDFBox
>
>         Attachments: PDFJS-10026.jp2, PDFJS-10026.pdf
>
>
> There is an EOF exception:
> {noformat}
>     java.io.EOFException
>     at 
> javax.imageio.stream.ImageInputStreamImpl.readBits(ImageInputStreamImpl.java:687)
>     at 
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.fromAny(SampledImageReader.java:523)
>     at 
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage(SampledImageReader.java:217)
>     at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:418)
>     at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.getImage(PDImageXObject.java:400)
>     at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:1021) 
> {noformat}
> The EOF exception is because SampledImageReader expects a stream that is 3x 
> longer than actually appears, because the colorspace is said to have 3 colors 
> instead of 1. This is because the JPEG2000 plugin returns an image with 
> IndexColorModel which references three colors.
> There are two ways to solve this and both worked: the slower is to convert to 
> RGB which requires another change when reading the raster (because the raster 
> is now made if intergers), the faster is to force a gray colorspace. I use 
> the later but keep the change I made in passing the raster, we may need it 
> some day.
> I'm making the change only for the trunk for now, and to the 2.0 branch after 
> release of 2.0.12.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to