diff --git a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/psd/PSD.java b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/psd/PSD.java index 3a582a6a..6e167e04 100755 --- a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/psd/PSD.java +++ b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/psd/PSD.java @@ -43,7 +43,6 @@ public interface PSD { int RESOURCE_TYPE = ('8' << 24) + ('B' << 16) + ('I' << 8) + 'M'; // http://fileformats.archiveteam.org/wiki/Photoshop_Image_Resources - // However, ExifTool says ImageReady is PHUT and PhotoDeluxe is MeSa... :-/ int RESOURCE_TYPE_IMAGEREADY = ('M' << 24) + ('e' << 16) + ('S' << 8) + 'a'; int RESOURCE_TYPE_PHOTODELUXE = ('P' << 24) + ('H' << 16) + ('U' << 8) + 'T'; int RESOURCE_TYPE_LIGHTROOM = ('A' << 24) + ('g' << 16) + ('H' << 8) + 'g'; diff --git a/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/psd/PSDReaderTest.java b/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/psd/PSDReaderTest.java index 90ca64fb..288c7737 100644 --- a/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/psd/PSDReaderTest.java +++ b/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/psd/PSDReaderTest.java @@ -30,12 +30,16 @@ package com.twelvemonkeys.imageio.metadata.psd; import com.twelvemonkeys.imageio.metadata.Directory; import com.twelvemonkeys.imageio.metadata.MetadataReaderAbstractTest; +import com.twelvemonkeys.imageio.stream.SubImageInputStream; import org.junit.Test; +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageInputStream; import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; /** * PhotoshopReaderTest @@ -70,4 +74,16 @@ public class PSDReaderTest extends MetadataReaderAbstractTest { // TODO: More } + + @Test + public void testPhotoshopResourcePHUT() throws IOException { + // Test sample contains non-8BIM resource: PHUT (PhotoDeluxe) + try (ImageInputStream stream = ImageIO.createImageInputStream(getResource("/psd/friends-phut-resource.jpg"))) { + stream.seek(38); + + Directory directory = createReader().read(new SubImageInputStream(stream, 298)); + + assertEquals(9, directory.size()); // 6 8BIM + 2 PHUT + 1 8 BIM + } + } } diff --git a/imageio/imageio-metadata/src/test/resources/psd/friends-phut-resource.jpg b/imageio/imageio-metadata/src/test/resources/psd/friends-phut-resource.jpg new file mode 100644 index 00000000..626ae684 Binary files /dev/null and b/imageio/imageio-metadata/src/test/resources/psd/friends-phut-resource.jpg differ