diff --git a/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReader.java b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReader.java index 7355b264..752499f7 100644 --- a/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReader.java +++ b/imageio/imageio-icns/src/main/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReader.java @@ -419,6 +419,7 @@ public final class ICNSImageReader extends ImageReaderBase { } private BufferedImage readForeignFormat(int imageIndex, final ImageReadParam param, final IconResource resource) throws IOException { + // TODO: Optimize by caching readers that work? ImageInputStream stream = ImageIO.createImageInputStream(IIOUtil.createStreamAdapter(imageInput, resource.length)); try { @@ -588,9 +589,11 @@ public final class ICNSImageReader extends ImageReaderBase { int numImages = requested != -1 ? requested + 1 : reader.getNumImages(true); for (int i = start; i < numImages; i++) { try { + long begin = System.currentTimeMillis(); BufferedImage image = reader.read(i); imagesRead++; // System.err.println("image: " + image); + System.err.println(System.currentTimeMillis() - begin + "ms"); showIt(image, String.format("%s - %d", input.getName(), i)); } catch (IOException e) { diff --git a/imageio/imageio-icns/src/test/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderTest.java b/imageio/imageio-icns/src/test/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderTest.java index 67082b1a..527a0ba0 100644 --- a/imageio/imageio-icns/src/test/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderTest.java +++ b/imageio/imageio-icns/src/test/java/com/twelvemonkeys/imageio/plugins/icns/ICNSImageReaderTest.java @@ -60,16 +60,16 @@ public class ICNSImageReaderTest extends ImageReaderAbstractTestCase { new Dimension(16, 16), // 24 bit + 8 bit mask new Dimension(32, 32), // 24 bit + 8 bit mask new Dimension(48, 48), // 24 bit + 8 bit mask - new Dimension(128, 128) // 24 bit + 8 bit mask -, new Dimension(256, 256), // JPEG 2000 ic08 + new Dimension(128, 128), // 24 bit + 8 bit mask + new Dimension(256, 256), // JPEG 2000 ic08 new Dimension(512, 512) // JPEG 2000 ic09 ), new TestData( getClassLoaderResource("/icns/7zIcon.icns"), // Contains the icnV resource, that isn't an icon new Dimension(16, 16), // 24 bit + 8 bit mask new Dimension(32, 32), // 24 bit + 8 bit mask - new Dimension(128, 128) // 24 bit + 8 bit mask -, new Dimension(256, 256), // JPEG 2000 ic08 + new Dimension(128, 128), // 24 bit + 8 bit mask + new Dimension(256, 256), // JPEG 2000 ic08 new Dimension(512, 512) // JPEG 2000 ic09 ), new TestData(