comparison servlet/src/digilib/image/ImageLoaderImageInfoDocuInfo.java @ 170:d40922628e4a

Servlet Version 1.16b2 with new DigilibParameter code. - more generic class for request parameters - like already done for DiglibConfig - changes in JSPs for new request stuff - changes in ImageSize class so size=0 is "wildcard" - missing dw and dh parameters now treated as wildcards - changed package name in imageinfo class
author robcast
date Wed, 29 Oct 2003 22:47:15 +0100
parents e743b853efca
children afe7ff98bb71
comparison
equal deleted inserted replaced
169:93dd5e1c57d3 170:d40922628e4a
18 18
19 * Created on 11.06.2003 19 * Created on 11.06.2003
20 */ 20 */
21 package digilib.image; 21 package digilib.image;
22 22
23 import ImageInfo;
24
25 import java.io.File; 23 import java.io.File;
26 import java.io.IOException; 24 import java.io.IOException;
27 import java.io.RandomAccessFile; 25 import java.io.RandomAccessFile;
28 import java.util.Iterator; 26 import java.util.Iterator;
29 27
30 import javax.imageio.ImageIO; 28 import javax.imageio.ImageIO;
31 import javax.imageio.ImageReader; 29 import javax.imageio.ImageReader;
32 import javax.imageio.stream.ImageInputStream; 30 import javax.imageio.stream.ImageInputStream;
33 31
32 import org.marcoschmidt.image.ImageInfo;
33
34 import digilib.io.FileOpException; 34 import digilib.io.FileOpException;
35 import digilib.io.FileOps; 35 import digilib.io.FileOps;
36 import digilib.io.ImageFile; 36 import digilib.io.ImageFile;
37 import digilib.io.ImageFileset;
37 38
38 /** 39 /**
39 * @author casties 40 * @author casties
40 * 41 *
41 */ 42 */
42 public class ImageLoaderImageInfoDocuInfo implements DocuInfo { 43 public class ImageLoaderImageInfoDocuInfo implements DocuInfo {
43 44
44 /* check image size and type and store in ImageFile f */ 45 /* check image size and type and store in ImageFile f */
45 public boolean checkFile(ImageFile imgf) throws IOException { 46 public boolean checkFile(ImageFile imgf) throws IOException {
47 ImageFileset imgfs = imgf.getParent();
46 File f = imgf.getFile(); 48 File f = imgf.getFile();
47 if (f == null) { 49 if (f == null) {
48 throw new IOException("File not found!"); 50 throw new IOException("File not found!");
49 } 51 }
50 RandomAccessFile raf = new RandomAccessFile(f, "r"); 52 RandomAccessFile raf = new RandomAccessFile(f, "r");
57 if (iif.check()) { 59 if (iif.check()) {
58 ImageSize d = 60 ImageSize d =
59 new ImageSize(iif.getWidth(), iif.getHeight()); 61 new ImageSize(iif.getWidth(), iif.getHeight());
60 imgf.setSize(d); 62 imgf.setSize(d);
61 imgf.setMimetype(iif.getMimeType()); 63 imgf.setMimetype(iif.getMimeType());
64 if (imgfs != null) {
65 imgfs.setAspect(d);
66 }
62 raf.close(); 67 raf.close();
63 } else { 68 } else {
64 // else use ImageReader 69 // else use ImageReader
65 ImageInputStream istream = ImageIO.createImageInputStream(raf); 70 ImageInputStream istream = ImageIO.createImageInputStream(raf);
66 Iterator readers = ImageIO.getImageReaders(istream); 71 Iterator readers = ImageIO.getImageReaders(istream);
80 new ImageSize(reader.getWidth(0), reader.getHeight(0)); 85 new ImageSize(reader.getWidth(0), reader.getHeight(0));
81 imgf.setSize(d); 86 imgf.setSize(d);
82 String t = reader.getFormatName(); 87 String t = reader.getFormatName();
83 t = FileOps.mimeForFile(f); 88 t = FileOps.mimeForFile(f);
84 imgf.setMimetype(t); 89 imgf.setMimetype(t);
90 if (imgfs != null) {
91 imgfs.setAspect(d);
92 }
85 // dispose the reader to free resources 93 // dispose the reader to free resources
86 reader.dispose(); 94 reader.dispose();
87 } 95 }
88 return true; 96 return true;
89 } 97 }