Support reading multiple images from TIFF files.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1220618 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
index daf568b..7304aa5 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
@@ -444,6 +444,24 @@
return result;
}
+ public ArrayList getAllBufferedImages(ByteSource byteSource)
+ throws ImageReadException, IOException
+ {
+ FormatCompliance formatCompliance = FormatCompliance.getDefault();
+ TiffContents contents = new TiffReader(true).readDirectories(byteSource, true, formatCompliance);
+ ArrayList results = new ArrayList();
+ for (int i = 0; i < contents.directories.size(); i++)
+ {
+ TiffDirectory directory = (TiffDirectory) contents.directories.get(i);
+ BufferedImage result = directory.getTiffImage(null);
+ if (result != null)
+ {
+ results.add(result);
+ }
+ }
+ return results;
+ }
+
protected BufferedImage getBufferedImage(TiffDirectory directory, Map params)
throws ImageReadException, IOException
{
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
index 4c4e0b4..4cd9e77 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
@@ -432,7 +432,7 @@
boolean readImageData, FormatCompliance formatCompliance)
throws ImageReadException, IOException
{
- Collector collector = new FirstDirectoryCollector(readImageData);
+ Collector collector = new Collector(null);
readDirectories(byteSource, formatCompliance, collector);
TiffContents contents = collector.getContents();
if (contents.directories.size() < 1)