diff servlet/src/digilib/image/JAIImageLoaderDocuImage.java @ 149:04ad64b2137a

Servlet version 1.14b1 - better performance with thumbnails (really, this time :-) - new DocuInfo class - new Directory class - DocuFile uses String and Directory as data members - parameter rearrangements
author robcast
date Tue, 26 Aug 2003 22:28:43 +0200
parents 837a633a0407
children e743b853efca
line wrap: on
line diff
--- a/servlet/src/digilib/image/JAIImageLoaderDocuImage.java	Fri Aug 22 21:12:24 2003 +0200
+++ b/servlet/src/digilib/image/JAIImageLoaderDocuImage.java	Tue Aug 26 22:28:43 2003 +0200
@@ -20,7 +20,6 @@
 
 package digilib.image;
 
-import java.awt.Dimension;
 import java.awt.Rectangle;
 import java.awt.image.renderable.ParameterBlock;
 import java.io.File;
@@ -37,7 +36,6 @@
 
 import digilib.io.DocuFile;
 import digilib.io.FileOpException;
-import digilib.io.FileOps;
 
 /** DocuImage implementation using the Java Advanced Imaging API and the ImageLoader
  * API of Java 1.4.
@@ -83,9 +81,9 @@
 	}
 
 	/* Load an image file into the Object. */
-	public void loadImage(File f) throws FileOpException {
+	public void loadImage(DocuFile f) throws FileOpException {
 		System.gc();
-		img = JAI.create("ImageRead", f.getAbsolutePath());
+		img = JAI.create("ImageRead", f.getFile().getAbsolutePath());
 		if (img == null) {
 			util.dprintln(3, "ERROR(loadImage): unable to load file");
 			throw new FileOpException("Unable to load File!");
@@ -93,11 +91,12 @@
 	}
 
 	/* Get an ImageReader for the image file. */
-	public void preloadImage(File f) throws IOException {
+	public void preloadImage(DocuFile f) throws IOException {
 		System.gc();
-		RandomAccessFile rf = new RandomAccessFile(f, "r");
+		RandomAccessFile rf = new RandomAccessFile(f.getFile(), "r");
 		ImageInputStream istream = ImageIO.createImageInputStream(rf);
-		Iterator readers = ImageIO.getImageReaders(istream);
+		//Iterator readers = ImageIO.getImageReaders(istream);
+		Iterator readers = ImageIO.getImageReadersByMIMEType(f.getMimetype());
 		reader = (ImageReader) readers.next();
 		reader.setInput(istream);
 		if (reader == null) {
@@ -107,11 +106,11 @@
 	}
 
 	/* Load an image file into the Object. */
-	public void loadSubimage(File f, Rectangle region, int prescale)
+	public void loadSubimage(DocuFile f, Rectangle region, int prescale)
 		throws FileOpException {
 		System.gc();
 		try {
-			if ((reader == null) || (imgFile != f)) {
+			if ((reader == null) || (imgFile != f.getFile())) {
 				preloadImage(f);
 			}
 			ImageInputStream istream = (ImageInputStream) reader.getInput();
@@ -134,9 +133,10 @@
 			util.dprintln(3, "ERROR(loadImage): unable to load file");
 			throw new FileOpException("Unable to load File!");
 		}
-		imgFile = f;
+		imgFile = f.getFile();
 	}
 
+
 	/* Write the current image to an OutputStream. */
 	public void writeImage(String mt, OutputStream ostream)
 		throws FileOpException {
@@ -162,24 +162,6 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see digilib.image.DocuImage#checkFile(digilib.io.DocuFile)
-	 */
-	public boolean checkFile(DocuFile f) throws IOException {
-		// see if f is already loaded
-		if ((reader == null) || (imgFile != f.getFile())) {
-			preloadImage(f.getFile());
-		}
-		Dimension d = new Dimension();
-		d.setSize(reader.getWidth(0), reader.getHeight(0));
-		f.setSize(d);
-		//	String t = reader.getFormatName();
-		String t = FileOps.mimeForFile(f.getFile());
-		f.setMimetype(t);
-		f.setChecked(true);
-		return true;
-	}
-
-	/* (non-Javadoc)
 	 * @see java.lang.Object#finalize()
 	 */
 	protected void finalize() throws Throwable {