You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Marco Wagner (JIRA)" <ji...@apache.org> on 2016/09/14 12:15:20 UTC

[jira] [Created] (IMAGING-188) ICNS Image Parser: Support for large Icons (ic07, ic08, ic09, ic10 [128px, 256px, 512px, 1024px])

Marco Wagner created IMAGING-188:
------------------------------------

             Summary: ICNS Image Parser: Support for large Icons (ic07, ic08, ic09, ic10 [128px, 256px, 512px, 1024px])
                 Key: IMAGING-188
                 URL: https://issues.apache.org/jira/browse/IMAGING-188
             Project: Commons Imaging
          Issue Type: Improvement
    Affects Versions: 1.0
         Environment: OS X
            Reporter: Marco Wagner


I needed larger icons of icns files, than currently extracted with the Apache Commons Imaging ICNS Image Parser/ICNS Decoder.

So I edited the Source Code:

In case an icns element is a PNG (depends on 0-4th byte [header]), 
the bytes can be put in a ByteArrayInputStream and then read by ImageIO.read, that returns the BufferedImage needed.
Then it can be added to the list of List<BufferedImage> in IcnsDecoder#decodeAllImages().

InputStream in = new ByteArrayInputStream(imageData);       
BufferedImage image =  ImageIO.read(in);

To the enum IcnsType I added:
ICNS_256x256_32BIT_ARGB_IMAGE("ic08", 256, 256, 32, false),
ICNS_512x512_32BIT_ARGB_IMAGE("ic09", 512, 512, 32, false),
ICNS_1024x1024_32BIT_ARGB_IMAGE("ic10", 1024, 1024, 32, false);

https://en.wikipedia.org/wiki/Apple_Icon_Image_format

No need for Rle24Compression.decompress() or decode32BPPImage().

I can upload the code somewhere, please tell me how to do.



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