changeset 464:f1f710ff14ad

Servlet version 1.10b - JAIDocuImage loads Flashpix - refactored image detection code into DocuImage - DocuImage has new methods identify() and getSupportedFormats()
author robcast
date Mon, 13 Feb 2006 20:57:18 +0100
parents d76a9e3f1ec9
children 5259018dce6c
files servlet/src/digilib/image/DocuImageImpl.java servlet/src/digilib/image/ImageLoaderDocuImage.java
diffstat 2 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/servlet/src/digilib/image/DocuImageImpl.java	Mon Feb 13 20:57:18 2006 +0100
+++ b/servlet/src/digilib/image/DocuImageImpl.java	Mon Feb 13 20:57:18 2006 +0100
@@ -20,17 +20,19 @@
 
 package digilib.image;
 
-import digilib.io.ImageFileset;
 import java.awt.Rectangle;
 import java.io.File;
 import java.io.IOException;
 import java.io.RandomAccessFile;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
 
 import org.apache.log4j.Logger;
+import org.marcoschmidt.image.ImageInfo;
 
 import digilib.io.FileOpException;
 import digilib.io.ImageFile;
-import org.marcoschmidt.image.ImageInfo;
 
 /** Simple abstract implementation of the <code>DocuImage</code> interface.
  *
@@ -73,7 +75,6 @@
     /** Check image size and type and store in ImageFile f */
     public boolean identify(ImageFile imgf) throws IOException {
         // fileset to store the information
-        ImageFileset imgfs = imgf.getParent();
         File f = imgf.getFile();
         if (f == null) {
             throw new IOException("File not found!");
@@ -153,6 +154,12 @@
 	}
 
 	public void dispose() {
+		// emtpy implementation
+	}
+
+	public Iterator getSupportedFormats() {
+		List empty = new LinkedList();
+		return empty.iterator();
 	}
 
 }
--- a/servlet/src/digilib/image/ImageLoaderDocuImage.java	Mon Feb 13 20:57:18 2006 +0100
+++ b/servlet/src/digilib/image/ImageLoaderDocuImage.java	Mon Feb 13 20:57:18 2006 +0100
@@ -19,8 +19,6 @@
 
 package digilib.image;
 
-import digilib.io.FileOps;
-import digilib.io.ImageFileset;
 import java.awt.Rectangle;
 import java.awt.RenderingHints;
 import java.awt.geom.AffineTransform;
@@ -34,6 +32,7 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.RandomAccessFile;
+import java.util.Arrays;
 import java.util.Iterator;
 
 import javax.imageio.IIOImage;
@@ -47,8 +46,9 @@
 import javax.imageio.stream.ImageOutputStream;
 
 import digilib.io.FileOpException;
+import digilib.io.FileOps;
 import digilib.io.ImageFile;
-import org.marcoschmidt.image.ImageInfo;
+import digilib.io.ImageFileset;
 
 /** Implementation of DocuImage using the ImageLoader API of Java 1.4 and Java2D. */
 public class ImageLoaderDocuImage extends DocuImageImpl {
@@ -115,6 +115,12 @@
 		return w;
 	}
 
+	/* returns a list of supported image formats */
+	public Iterator getSupportedFormats() {
+		String[] formats = ImageIO.getReaderFormatNames();
+		return Arrays.asList(formats).iterator();
+	}
+
     /** Check image size and type and store in ImageFile f */
     public boolean identify(ImageFile imgf) throws IOException {
         // try parent method first
@@ -160,10 +166,7 @@
                 raf.close();
             }
         }
-        return false;
-//        } catch (Exception e) {
-//            throw new FileOpException("ERROR: unknown image file format!");
-//        }
+        throw new FileOpException("ERROR: unknown image file format!");
     }