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)