You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xmlgraphics.apache.org by "Carsten Pfeiffer (JIRA)" <ji...@apache.org> on 2015/08/04 09:02:04 UTC

[jira] [Commented] (XGC-99) PNGFile.getImageRawPNG() returns broken image data

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

Carsten Pfeiffer commented on XGC-99:
-------------------------------------

Do you want me to send a pull request?

> PNGFile.getImageRawPNG() returns broken image data
> --------------------------------------------------
>
>                 Key: XGC-99
>                 URL: https://issues.apache.org/jira/browse/XGC-99
>             Project: XMLGraphicsCommons
>          Issue Type: Bug
>          Components: image codecs
>    Affects Versions: 2.0.1, trunk
>            Reporter: Carsten Pfeiffer
>
> The ImageRawPNG returned by PNGFile.getImageRawPNG() is broken because the provided InputStream (streamVec) contains only part of the raw image data. For a start the magic header is missing, but it's not enough to add it.
> To fix this, I copied the entire stream in the PNGFile constructor like this:
> {code}
>         stream.mark(Integer.MAX_VALUE);
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>         IOUtils.copy(stream, out);
>         rawStream = new ByteArrayInputStream(out.toByteArray());
>         out = null;
>         stream.reset();
> {code}
> and use the rawStream in favor of streamVec, which can be removed then.
> Testcases still run successful. This fixes RTF output not working with PNG files in FOP because it checks for (missing) the PNG magic header.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: general-help@xmlgraphics.apache.org