Mercurial > hg > digilib-old
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 } |
