[
https://issues.apache.org/jira/browse/PDFBOX-2274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14102107#comment-14102107
]
Dominic Tubach commented on PDFBOX-2274:
----------------------------------------
This code illustrates the problem:
{code}
PDDocument doc = new PDDocument();
InputStream imageStream = new FileInputStream("image.jpg");
PDImageXObject image = JPEGFactory.createFromStream(doc, imageStream);
InputStream in = image.getStream().getStream().getUnfilteredStream();
try (OutputStream out = new FileOutputStream("result.jpg")) {
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
}
{code}
Without the added line stated above result.jpg is not a valid image.
> Decoding issue in PDImageXObject
> --------------------------------
>
> Key: PDFBOX-2274
> URL: https://issues.apache.org/jira/browse/PDFBOX-2274
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 2.0.0
> Reporter: Dominic Tubach
>
> I'm using JpegFactory to create an PDImageXObject from a content stream.
> There the constrcutor
> {code}
> PDImageXObject(PDDocument document, InputStream filteredStream,
> COSBase cosFilter, int width, int height, int bitsPerComponent,
> PDColorSpace initColorSpace)
> {code}
> is used.
> I've found the following issue:
> The method getUnfilteredStream() of the COSStream in the PDImageXObject
> returns an input stream containing a RandomAccessFileInputStream with
> {{currentPosition = 50814}} and {{endPosition = 1440000}} and my following
> operation fails.
> If the method doDecode() of the COSStream is called before the filter is set
> in the COSStream the input stream returned by getUnfilteredStream() contains
> a RandomAccessFileInputStream with {{currentPosition = 0}} and {{endPosition
> = 50814}} and the result is as expected.
> I've achieved this by adding
> {code}
> getStream().getStream().getDecodeResult();
> {code}
> before
> {code}
> getCOSStream().setItem(COSName.FILTER, cosFilter);
> {code}
> in the PDImageXObject contructor.
--
This message was sent by Atlassian JIRA
(v6.2#6252)