Mercurial > hg > digilib-old
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."); }