diff --git a/pom.xml b/pom.xml
index 677762fe8..814261ecc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,400 +17,404 @@
-->
- 4.0.0
+ 4.0.0
-
-
-
+
+
+
-
- org.apache.commons
- commons-parent
- 40
-
+
+ org.apache.commons
+ commons-parent
+ 40
+
- org.apache.commons
- commons-imaging
- Apache Commons Imaging
+ org.apache.commons
+ commons-imaging
+ Apache Commons Imaging
- 1.0-SNAPSHOT
+ 1.0-SNAPSHOT
-
- Apache Commons Imaging (previously Sanselan) is a pure-Java image library.
- http://commons.apache.org/proper/commons-imaging/
+
+ Apache Commons Imaging (previously Sanselan) is a pure-Java image library.
+ http://commons.apache.org/proper/commons-imaging/
-
- 1.7
- 1.7
- imaging
- 1.0
- RC5
- IMAGING
- 12313421
- org.apache.commons.imaging.*;version=${project.version};-noimport:=true
- UTF-8
- UTF-8
-
+
+ 1.7
+ 1.7
+ imaging
+ 1.0
+ RC5
+ IMAGING
+ 12313421
+ org.apache.commons.imaging.*;version=${project.version};-noimport:=true
+ UTF-8
+ UTF-8
+
-
- scm:svn:http://svn.apache.org/repos/asf/commons/proper/imaging/trunk
- scm:svn:https://svn.apache.org/repos/asf/commons/proper/imaging/trunk
- http://svn.apache.org/viewvc/commons/proper/imaging/trunk
-
+
+ scm:svn:http://svn.apache.org/repos/asf/commons/proper/imaging/trunk
+ scm:svn:https://svn.apache.org/repos/asf/commons/proper/imaging/trunk
+ http://svn.apache.org/viewvc/commons/proper/imaging/trunk
+
-
-
- stagingSite
- Apache Staging Website
- ${commons.deployment.protocol}://people.apache.org/www/commons.apache.org/${commons.componentid}/
-
-
+
+
+ stagingSite
+ Apache Staging Website
+ ${commons.deployment.protocol}://people.apache.org/www/commons.apache.org/${commons.componentid}/
+
+
-
- Jira
- http://issues.apache.org/jira/browse/IMAGING
-
- 2007
+
+ Jira
+ http://issues.apache.org/jira/browse/IMAGING
+
+ 2007
-
- 2.0.7
-
+
+ 2.0.7
+
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
-
-
- src/assembly/bin.xml
- src/assembly/src.xml
-
- gnu
-
-
-
- maven-jar-plugin
-
-
-
- org.apache.commons.imaging
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- org.codehaus.mojo
- animal-sniffer-maven-plugin
- 1.15
-
-
- org.codehaus.mojo.signature
- java17
- 1.0
-
-
-
-
- check-java-api
- test
-
- check
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-scm-publish-plugin
-
-
- javadocs**
-
-
-
-
-
- org.eclipse.m2e
- lifecycle-mapping
- 1.0.0
-
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ src/assembly/bin.xml
+ src/assembly/src.xml
+
+ gnu
+
+
+
+ maven-jar-plugin
+
+
+
+ org.apache.commons.imaging
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ org.codehaus.mojo
+ animal-sniffer-maven-plugin
+ 1.15
+
+
+ org.codehaus.mojo.signature
+ java17
+ 1.0
+
+
+
+
+ check-java-api
+ test
+
+ check
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-scm-publish-plugin
+
+
+ javadocs**
+
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ [1.6,)
+
+ run
+
+
+
+
+ false
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ [2.3.5,)
+
+ manifest
+
+
+
+
+ false
+
+
+
+
+
+
+
+
org.apache.maven.plugins
- maven-antrun-plugin
- [1.6,)
-
- run
-
-
-
-
- false
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- [2.3.5,)
-
- manifest
-
-
-
-
- false
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
- org.apache.commons.imaging.formats.psd.*:org.apache.commons.imaging.formats.png.*
-
-
-
-
-
+ maven-javadoc-plugin
+
+ org.apache.commons.imaging.formats.psd.*:org.apache.commons.imaging.formats.png.*
+
+
+
+
+
-
-
- junit
- junit
- 4.12
- test
-
-
- commons-io
- commons-io
- 2.5
- test
-
-
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ commons-io
+ commons-io
+ 2.5
+
+
+ com.github.jai-imageio
+ jai-imageio-jpeg2000
+ 1.3.0
+
+
-
-
-
- org.codehaus.mojo
- findbugs-maven-plugin
- 3.0.3
-
- Normal
- Default
-
-
-
- org.codehaus.mojo
- javancss-maven-plugin
- 2.1
-
-
- org.apache.maven.plugins
- maven-changes-plugin
- ${commons.changes.version}
-
- %URL%/%ISSUE%
-
-
-
-
- changes-report
- jira-report
-
-
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
- 2.11
- false
-
- ${basedir}/src/conf/checkstyle.xml
- ${basedir}/src/conf/checkstyle-suppressions.xml
- false
- basedir=${basedir}
-
-
-
-
-
- checkstyle
-
-
-
-
-
- org.apache.maven.plugins
- maven-pmd-plugin
- 3.3
-
- ${maven.compiler.target}
-
- ${basedir}/src/conf/pmd-ruleset.xml
-
-
-
-
- org.codehaus.mojo
- taglist-maven-plugin
- 2.4
-
-
-
-
- Needs Work
-
-
- TODO
- exact
-
-
- FIXME
- exact
-
-
- XXX
- exact
-
-
-
-
- Noteable Markers
-
-
- NOTE
- exact
-
-
- NOPMD
- exact
-
-
- NOSONAR
- exact
-
-
-
-
-
-
-
-
- org.apache.rat
- apache-rat-plugin
-
-
- src/test/data/images/xpm/1/symbolic.xpm
- src/test/data/images/xpm/1/Oregon Scientific DS6639 - DSC_0307 - small.xpm
- src/test/data/images/pbm/2/5x5-grayscale.pam
- src/test/data/images/pbm/2/5x5-bw.pam
- src/test/data/images/pbm/1/Oregon Scientific DS6639 - DSC_0307 - small.pgm
- src/test/data/images/xbm/1/Oregon Scientific DS6639 - DSC_0307 - small.xbm
- src/main/resources/org/apache/commons/imaging/formats/xpm/rgb.txt
-
-
-
-
-
+
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.3
+
+ Normal
+ Default
+
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.1
+
+
+ org.apache.maven.plugins
+ maven-changes-plugin
+ ${commons.changes.version}
+
+ %URL%/%ISSUE%
+
+
+
+
+ changes-report
+ jira-report
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 2.11
+ false
+
+ ${basedir}/src/conf/checkstyle.xml
+ ${basedir}/src/conf/checkstyle-suppressions.xml
+ false
+ basedir=${basedir}
+
+
+
+
+
+ checkstyle
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.3
+
+ ${maven.compiler.target}
+
+ ${basedir}/src/conf/pmd-ruleset.xml
+
+
+
+
+ org.codehaus.mojo
+ taglist-maven-plugin
+ 2.4
+
+
+
+
+ Needs Work
+
+
+ TODO
+ exact
+
+
+ FIXME
+ exact
+
+
+ XXX
+ exact
+
+
+
+
+ Noteable Markers
+
+
+ NOTE
+ exact
+
+
+ NOPMD
+ exact
+
+
+ NOSONAR
+ exact
+
+
+
+
+
+
+
+
+ org.apache.rat
+ apache-rat-plugin
+
+
+ src/test/data/images/xpm/1/symbolic.xpm
+ src/test/data/images/xpm/1/Oregon Scientific DS6639 - DSC_0307 - small.xpm
+ src/test/data/images/pbm/2/5x5-grayscale.pam
+ src/test/data/images/pbm/2/5x5-bw.pam
+ src/test/data/images/pbm/1/Oregon Scientific DS6639 - DSC_0307 - small.pgm
+ src/test/data/images/xbm/1/Oregon Scientific DS6639 - DSC_0307 - small.xbm
+ src/main/resources/org/apache/commons/imaging/formats/xpm/rgb.txt
+
+
+
+
+
-
-
- jdk8-javadoc
-
- [1.8,)
-
-
- -Xdoclint:none
-
-
-
+
+
+ jdk8-javadoc
+
+ [1.8,)
+
+
+ -Xdoclint:none
+
+
+
-
-
-
+
+
+
-
-
- Charles M. Chen
- cmchen
-
-
- Philipp Koch
- pkoch
-
-
- Jeremias Maerki
- jeremias
-
-
- Craig Russell
- clr
-
-
- Yoav Shapira
- yoavs
-
-
- Carsten Ziegeler
- cziegeler
-
-
- Damjan Jovanovic
- damjan
-
-
- Matt Benson
- mbenson
-
-
+
+
+ Charles M. Chen
+ cmchen
+
+
+ Philipp Koch
+ pkoch
+
+
+ Jeremias Maerki
+ jeremias
+
+
+ Craig Russell
+ clr
+
+
+ Yoav Shapira
+ yoavs
+
+
+ Carsten Ziegeler
+ cziegeler
+
+
+ Damjan Jovanovic
+ damjan
+
+
+ Matt Benson
+ mbenson
+
+
-
-
- Adrian Moerchen
-
-
- Alex Vigdor
-
-
- Craig Kelly
-
-
- Gary Lucas
-
-
- Gavin Shiels
-
-
- Peter Royal
-
-
- Piyush Kapoor
-
-
- Tars Joris
-
-
- VVD
-
-
+
+
+ Adrian Moerchen
+
+
+ Alex Vigdor
+
+
+ Craig Kelly
+
+
+ Gary Lucas
+
+
+ Gavin Shiels
+
+
+ Peter Royal
+
+
+ Piyush Kapoor
+
+
+ Tars Joris
+
+
+ VVD
+
+
diff --git a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
old mode 100644
new mode 100755
index 664e194f8..0846a2890
--- a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
@@ -17,71 +17,24 @@
package org.apache.commons.imaging.formats.icns;
import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+
+import javax.imageio.ImageIO;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.common.ImageBuilder;
import org.apache.commons.imaging.formats.icns.IcnsImageParser.IcnsElement;
final class IcnsDecoder {
- private static final int[] PALETTE_4BPP = { 0xffffffff, 0xfffcf305,
- 0xffff6402, 0xffdd0806, 0xfff20884, 0xff4600a5, 0xff0000d4,
- 0xff02abea, 0xff1fb714, 0xff006411, 0xff562c05, 0xff90713a,
- 0xffc0c0c0, 0xff808080, 0xff404040, 0xff000000 };
+ private static final int[] PALETTE_4BPP = { 0xffffffff, 0xfffcf305, 0xffff6402, 0xffdd0806, 0xfff20884, 0xff4600a5, 0xff0000d4, 0xff02abea, 0xff1fb714, 0xff006411, 0xff562c05, 0xff90713a, 0xffc0c0c0, 0xff808080, 0xff404040, 0xff000000 };
- private static final int[] PALETTE_8BPP = { 0xFFFFFFFF, 0xFFFFFFCC,
- 0xFFFFFF99, 0xFFFFFF66, 0xFFFFFF33, 0xFFFFFF00, 0xFFFFCCFF,
- 0xFFFFCCCC, 0xFFFFCC99, 0xFFFFCC66, 0xFFFFCC33, 0xFFFFCC00,
- 0xFFFF99FF, 0xFFFF99CC, 0xFFFF9999, 0xFFFF9966, 0xFFFF9933,
- 0xFFFF9900, 0xFFFF66FF, 0xFFFF66CC, 0xFFFF6699, 0xFFFF6666,
- 0xFFFF6633, 0xFFFF6600, 0xFFFF33FF, 0xFFFF33CC, 0xFFFF3399,
- 0xFFFF3366, 0xFFFF3333, 0xFFFF3300, 0xFFFF00FF, 0xFFFF00CC,
- 0xFFFF0099, 0xFFFF0066, 0xFFFF0033, 0xFFFF0000, 0xFFCCFFFF,
- 0xFFCCFFCC, 0xFFCCFF99, 0xFFCCFF66, 0xFFCCFF33, 0xFFCCFF00,
- 0xFFCCCCFF, 0xFFCCCCCC, 0xFFCCCC99, 0xFFCCCC66, 0xFFCCCC33,
- 0xFFCCCC00, 0xFFCC99FF, 0xFFCC99CC, 0xFFCC9999, 0xFFCC9966,
- 0xFFCC9933, 0xFFCC9900, 0xFFCC66FF, 0xFFCC66CC, 0xFFCC6699,
- 0xFFCC6666, 0xFFCC6633, 0xFFCC6600, 0xFFCC33FF, 0xFFCC33CC,
- 0xFFCC3399, 0xFFCC3366, 0xFFCC3333, 0xFFCC3300, 0xFFCC00FF,
- 0xFFCC00CC, 0xFFCC0099, 0xFFCC0066, 0xFFCC0033, 0xFFCC0000,
- 0xFF99FFFF, 0xFF99FFCC, 0xFF99FF99, 0xFF99FF66, 0xFF99FF33,
- 0xFF99FF00, 0xFF99CCFF, 0xFF99CCCC, 0xFF99CC99, 0xFF99CC66,
- 0xFF99CC33, 0xFF99CC00, 0xFF9999FF, 0xFF9999CC, 0xFF999999,
- 0xFF999966, 0xFF999933, 0xFF999900, 0xFF9966FF, 0xFF9966CC,
- 0xFF996699, 0xFF996666, 0xFF996633, 0xFF996600, 0xFF9933FF,
- 0xFF9933CC, 0xFF993399, 0xFF993366, 0xFF993333, 0xFF993300,
- 0xFF9900FF, 0xFF9900CC, 0xFF990099, 0xFF990066, 0xFF990033,
- 0xFF990000, 0xFF66FFFF, 0xFF66FFCC, 0xFF66FF99, 0xFF66FF66,
- 0xFF66FF33, 0xFF66FF00, 0xFF66CCFF, 0xFF66CCCC, 0xFF66CC99,
- 0xFF66CC66, 0xFF66CC33, 0xFF66CC00, 0xFF6699FF, 0xFF6699CC,
- 0xFF669999, 0xFF669966, 0xFF669933, 0xFF669900, 0xFF6666FF,
- 0xFF6666CC, 0xFF666699, 0xFF666666, 0xFF666633, 0xFF666600,
- 0xFF6633FF, 0xFF6633CC, 0xFF663399, 0xFF663366, 0xFF663333,
- 0xFF663300, 0xFF6600FF, 0xFF6600CC, 0xFF660099, 0xFF660066,
- 0xFF660033, 0xFF660000, 0xFF33FFFF, 0xFF33FFCC, 0xFF33FF99,
- 0xFF33FF66, 0xFF33FF33, 0xFF33FF00, 0xFF33CCFF, 0xFF33CCCC,
- 0xFF33CC99, 0xFF33CC66, 0xFF33CC33, 0xFF33CC00, 0xFF3399FF,
- 0xFF3399CC, 0xFF339999, 0xFF339966, 0xFF339933, 0xFF339900,
- 0xFF3366FF, 0xFF3366CC, 0xFF336699, 0xFF336666, 0xFF336633,
- 0xFF336600, 0xFF3333FF, 0xFF3333CC, 0xFF333399, 0xFF333366,
- 0xFF333333, 0xFF333300, 0xFF3300FF, 0xFF3300CC, 0xFF330099,
- 0xFF330066, 0xFF330033, 0xFF330000, 0xFF00FFFF, 0xFF00FFCC,
- 0xFF00FF99, 0xFF00FF66, 0xFF00FF33, 0xFF00FF00, 0xFF00CCFF,
- 0xFF00CCCC, 0xFF00CC99, 0xFF00CC66, 0xFF00CC33, 0xFF00CC00,
- 0xFF0099FF, 0xFF0099CC, 0xFF009999, 0xFF009966, 0xFF009933,
- 0xFF009900, 0xFF0066FF, 0xFF0066CC, 0xFF006699, 0xFF006666,
- 0xFF006633, 0xFF006600, 0xFF0033FF, 0xFF0033CC, 0xFF003399,
- 0xFF003366, 0xFF003333, 0xFF003300, 0xFF0000FF, 0xFF0000CC,
- 0xFF000099, 0xFF000066, 0xFF000033, 0xFFEE0000, 0xFFDD0000,
- 0xFFBB0000, 0xFFAA0000, 0xFF880000, 0xFF770000, 0xFF550000,
- 0xFF440000, 0xFF220000, 0xFF110000, 0xFF00EE00, 0xFF00DD00,
- 0xFF00BB00, 0xFF00AA00, 0xFF008800, 0xFF007700, 0xFF005500,
- 0xFF004400, 0xFF002200, 0xFF001100, 0xFF0000EE, 0xFF0000DD,
- 0xFF0000BB, 0xFF0000AA, 0xFF000088, 0xFF000077, 0xFF000055,
- 0xFF000044, 0xFF000022, 0xFF000011, 0xFFEEEEEE, 0xFFDDDDDD,
- 0xFFBBBBBB, 0xFFAAAAAA, 0xFF888888, 0xFF777777, 0xFF555555,
- 0xFF444444, 0xFF222222, 0xFF111111, 0xFF000000 };
+ private static final int[] PALETTE_8BPP = { 0xFFFFFFFF, 0xFFFFFFCC, 0xFFFFFF99, 0xFFFFFF66, 0xFFFFFF33, 0xFFFFFF00, 0xFFFFCCFF, 0xFFFFCCCC, 0xFFFFCC99, 0xFFFFCC66, 0xFFFFCC33, 0xFFFFCC00, 0xFFFF99FF, 0xFFFF99CC, 0xFFFF9999, 0xFFFF9966, 0xFFFF9933, 0xFFFF9900, 0xFFFF66FF, 0xFFFF66CC, 0xFFFF6699, 0xFFFF6666, 0xFFFF6633, 0xFFFF6600, 0xFFFF33FF, 0xFFFF33CC, 0xFFFF3399, 0xFFFF3366, 0xFFFF3333, 0xFFFF3300, 0xFFFF00FF, 0xFFFF00CC, 0xFFFF0099, 0xFFFF0066, 0xFFFF0033, 0xFFFF0000, 0xFFCCFFFF, 0xFFCCFFCC, 0xFFCCFF99, 0xFFCCFF66, 0xFFCCFF33, 0xFFCCFF00, 0xFFCCCCFF, 0xFFCCCCCC, 0xFFCCCC99, 0xFFCCCC66, 0xFFCCCC33, 0xFFCCCC00, 0xFFCC99FF, 0xFFCC99CC, 0xFFCC9999, 0xFFCC9966, 0xFFCC9933, 0xFFCC9900, 0xFFCC66FF, 0xFFCC66CC, 0xFFCC6699, 0xFFCC6666, 0xFFCC6633, 0xFFCC6600, 0xFFCC33FF, 0xFFCC33CC, 0xFFCC3399, 0xFFCC3366, 0xFFCC3333, 0xFFCC3300, 0xFFCC00FF, 0xFFCC00CC, 0xFFCC0099, 0xFFCC0066, 0xFFCC0033, 0xFFCC0000, 0xFF99FFFF, 0xFF99FFCC, 0xFF99FF99, 0xFF99FF66, 0xFF99FF33, 0xFF99FF00, 0xFF99CCFF, 0xFF99CCCC, 0xFF99CC99, 0xFF99CC66, 0xFF99CC33, 0xFF99CC00, 0xFF9999FF, 0xFF9999CC, 0xFF999999, 0xFF999966, 0xFF999933, 0xFF999900, 0xFF9966FF, 0xFF9966CC, 0xFF996699, 0xFF996666, 0xFF996633, 0xFF996600, 0xFF9933FF, 0xFF9933CC, 0xFF993399, 0xFF993366, 0xFF993333, 0xFF993300, 0xFF9900FF, 0xFF9900CC, 0xFF990099, 0xFF990066, 0xFF990033, 0xFF990000, 0xFF66FFFF, 0xFF66FFCC, 0xFF66FF99, 0xFF66FF66, 0xFF66FF33, 0xFF66FF00, 0xFF66CCFF, 0xFF66CCCC, 0xFF66CC99, 0xFF66CC66, 0xFF66CC33, 0xFF66CC00, 0xFF6699FF, 0xFF6699CC, 0xFF669999, 0xFF669966, 0xFF669933, 0xFF669900, 0xFF6666FF, 0xFF6666CC, 0xFF666699, 0xFF666666, 0xFF666633, 0xFF666600, 0xFF6633FF, 0xFF6633CC, 0xFF663399, 0xFF663366, 0xFF663333, 0xFF663300, 0xFF6600FF, 0xFF6600CC, 0xFF660099, 0xFF660066, 0xFF660033, 0xFF660000, 0xFF33FFFF, 0xFF33FFCC, 0xFF33FF99, 0xFF33FF66, 0xFF33FF33, 0xFF33FF00, 0xFF33CCFF, 0xFF33CCCC, 0xFF33CC99, 0xFF33CC66, 0xFF33CC33, 0xFF33CC00, 0xFF3399FF, 0xFF3399CC, 0xFF339999, 0xFF339966, 0xFF339933, 0xFF339900, 0xFF3366FF, 0xFF3366CC, 0xFF336699, 0xFF336666, 0xFF336633, 0xFF336600, 0xFF3333FF, 0xFF3333CC, 0xFF333399, 0xFF333366, 0xFF333333, 0xFF333300, 0xFF3300FF, 0xFF3300CC, 0xFF330099, 0xFF330066, 0xFF330033, 0xFF330000, 0xFF00FFFF, 0xFF00FFCC, 0xFF00FF99, 0xFF00FF66, 0xFF00FF33, 0xFF00FF00, 0xFF00CCFF, 0xFF00CCCC, 0xFF00CC99, 0xFF00CC66, 0xFF00CC33, 0xFF00CC00, 0xFF0099FF, 0xFF0099CC, 0xFF009999, 0xFF009966, 0xFF009933, 0xFF009900, 0xFF0066FF, 0xFF0066CC, 0xFF006699, 0xFF006666, 0xFF006633, 0xFF006600, 0xFF0033FF, 0xFF0033CC, 0xFF003399, 0xFF003366, 0xFF003333, 0xFF003300, 0xFF0000FF, 0xFF0000CC, 0xFF000099, 0xFF000066, 0xFF000033, 0xFFEE0000, 0xFFDD0000, 0xFFBB0000, 0xFFAA0000, 0xFF880000, 0xFF770000, 0xFF550000, 0xFF440000, 0xFF220000, 0xFF110000, 0xFF00EE00, 0xFF00DD00, 0xFF00BB00, 0xFF00AA00, 0xFF008800, 0xFF007700, 0xFF005500, 0xFF004400, 0xFF002200, 0xFF001100, 0xFF0000EE, 0xFF0000DD, 0xFF0000BB, 0xFF0000AA, 0xFF000088, 0xFF000077, 0xFF000055, 0xFF000044, 0xFF000022, 0xFF000011, 0xFFEEEEEE, 0xFFDDDDDD, 0xFFBBBBBB, 0xFFAAAAAA, 0xFF888888, 0xFF777777, 0xFF555555, 0xFF444444, 0xFF222222, 0xFF111111, 0xFF000000 };
private IcnsDecoder() {
}
@@ -96,7 +49,7 @@ private static void decode1BPPImage(final IcnsType imageType, final byte[] image
value = 0xff & imageData[position++];
bitsLeft = 8;
}
- int argb;
+ final int argb;
if ((value & 0x80) != 0) {
argb = 0xff000000;
} else {
@@ -114,7 +67,7 @@ private static void decode4BPPImage(final IcnsType imageType, final byte[] image
boolean visited = false;
for (int y = 0; y < imageType.getHeight(); y++) {
for (int x = 0; x < imageType.getWidth(); x++) {
- int index;
+ final int index;
if (!visited) {
index = 0xf & (imageData[i] >> 4);
} else {
@@ -139,9 +92,9 @@ private static void decode32BPPImage(final IcnsType imageType, final byte[] imag
for (int y = 0; y < imageType.getHeight(); y++) {
for (int x = 0; x < imageType.getWidth(); x++) {
final int argb = 0xff000000 /* the "alpha" is ignored */
- | ((0xff & imageData[4 * (y * imageType.getWidth() + x) + 1]) << 16)
- | ((0xff & imageData[4 * (y * imageType.getWidth() + x) + 2]) << 8)
- | (0xff & imageData[4 * (y * imageType.getWidth() + x) + 3]);
+ | ((0xff & imageData[4 * (y * imageType.getWidth() + x) + 1]) << 16)
+ | ((0xff & imageData[4 * (y * imageType.getWidth() + x) + 2]) << 8)
+ | (0xff & imageData[4 * (y * imageType.getWidth() + x) + 3]);
image.setRGB(x, y, argb);
}
}
@@ -167,7 +120,7 @@ private static void apply1BPPMask(final byte[] maskData, final ImageBuilder imag
value = 0xff & maskData[position++];
bitsLeft = 8;
}
- int alpha;
+ final int alpha;
if ((value & 0x80) != 0) {
alpha = 0xff;
} else {
@@ -184,16 +137,16 @@ private static void apply8BPPMask(final byte[] maskData, final ImageBuilder imag
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
final int alpha = 0xff & maskData[y * image.getWidth() + x];
- image.setRGB(x, y,
- (alpha << 24) | (0xffffff & image.getRGB(x, y)));
+ image.setRGB(x, y, (alpha << 24) | (0xffffff & image.getRGB(x, y)));
}
}
}
- public static List decodeAllImages(final IcnsImageParser.IcnsElement[] icnsElements)
- throws ImageReadException {
- final List result = new ArrayList<>();
+ public static List