diff servlet/src/digilib/image/JAIImageLoaderDocuImage.java @ 142:f52a7664a807

Servlet version 1.12b3 - JAIImageLoaderDocuImage working again - smoother scaling with JAI and JAIImageLoader - Quality default now 1
author robcast
date Mon, 18 Aug 2003 11:38:15 +0200
parents 6d35c945a5d6
children 837a633a0407
line wrap: on
line diff
--- a/servlet/src/digilib/image/JAIImageLoaderDocuImage.java	Fri Aug 15 23:53:23 2003 +0200
+++ b/servlet/src/digilib/image/JAIImageLoaderDocuImage.java	Mon Aug 18 11:38:15 2003 +0200
@@ -34,7 +34,6 @@
 import javax.imageio.ImageReader;
 import javax.imageio.stream.ImageInputStream;
 import javax.media.jai.JAI;
-import javax.media.jai.ParameterBlockJAI;
 
 import digilib.io.DocuFile;
 import digilib.io.FileOpException;
@@ -93,6 +92,20 @@
 		}
 	}
 
+	/* Get an ImageReader for the image file. */
+	public void preloadImage(File f) throws IOException {
+		System.gc();
+		RandomAccessFile rf = new RandomAccessFile(f, "r");
+		ImageInputStream istream = ImageIO.createImageInputStream(rf);
+		Iterator readers = ImageIO.getImageReaders(istream);
+		reader = (ImageReader) readers.next();
+		reader.setInput(istream);
+		if (reader == null) {
+			util.dprintln(3, "ERROR(loadImage): unable to load file");
+			throw new FileOpException("Unable to load File!");
+		}
+	}
+
 	/* Load an image file into the Object. */
 	public void loadSubimage(File f, Rectangle region, int prescale)
 		throws FileOpException {
@@ -105,11 +118,14 @@
 			ImageReadParam readParam = reader.getDefaultReadParam();
 			readParam.setSourceRegion(region);
 			readParam.setSourceSubsampling(prescale, prescale, 0, 0);
+			img = reader.read(0, readParam);
+			/* JAI imageread seems to ignore the readParam :-(
 			ParameterBlockJAI pb = new ParameterBlockJAI("imageread");
 			pb.setParameter("Input", istream);
 			pb.setParameter("ReadParam", readParam);
 			pb.setParameter("Reader", reader);
 			img = JAI.create("imageread", pb);
+			*/
 		} catch (IOException e) {
 			util.dprintln(3, "ERROR(loadImage): unable to load file");
 			throw new FileOpException("Unable to load File!");
@@ -121,20 +137,6 @@
 		imgFile = f;
 	}
 
-	/* Get an ImageReader for the image file. */
-	public void preloadImage(File f) throws IOException {
-		System.gc();
-		RandomAccessFile rf = new RandomAccessFile(f, "r");
-		ImageInputStream istream = ImageIO.createImageInputStream(rf);
-		Iterator readers = ImageIO.getImageReaders(istream);
-		reader = (ImageReader) readers.next();
-		reader.setInput(istream);
-		if (reader == null) {
-			util.dprintln(3, "ERROR(loadImage): unable to load file");
-			throw new FileOpException("Unable to load File!");
-		}
-	}
-
 	/* Write the current image to an OutputStream. */
 	public void writeImage(String mt, OutputStream ostream)
 		throws FileOpException {
@@ -154,7 +156,6 @@
 			}
 			// render output
 			JAI.create("ImageWrite", pb3);
-
 		} catch (IOException e) {
 			throw new FileOpException("Error writing image.");
 		}