comparison servlet/src/digilib/image/ImageInfoDocuImage.java @ 569:1f666c2b4578

Merge with PDF branch 8beefd1142b28ca9b2433205e7eea82a517bb215
author robcast
date Tue, 21 Dec 2010 09:52:16 +0100
parents 4c51d71aef13
children 50f291d808b1
comparison
equal deleted inserted replaced
535:9936604d466e 569:1f666c2b4578
1 /**
2 *
3 */
4 package digilib.image;
5
6 import java.io.File;
7 import java.io.IOException;
8 import java.io.RandomAccessFile;
9
10 import org.marcoschmidt.image.ImageInfo;
11
12 import digilib.io.ImageFile;
13
14 /** Simple abstract implementation of the <code>DocuImage</code> interface.
15 * Implements only the identify method using the ImageInfo class.
16 * @author casties
17 *
18 */
19 public abstract class ImageInfoDocuImage extends DocuImageImpl {
20
21 /** Check image size and type and store in ImageFile f */
22 public ImageFile identify(ImageFile imgf) throws IOException {
23 // fileset to store the information
24 File f = imgf.getFile();
25 if (f == null) {
26 throw new IOException("File not found!");
27 }
28 RandomAccessFile raf = new RandomAccessFile(f, "r");
29 // set up ImageInfo object
30 ImageInfo iif = new ImageInfo();
31 iif.setInput(raf);
32 iif.setCollectComments(false);
33 iif.setDetermineImageNumber(false);
34 logger.debug("identifying (ImageInfo) " + f);
35 // try with ImageInfo first
36 if (iif.check()) {
37 ImageSize d = new ImageSize(iif.getWidth(), iif.getHeight());
38 imgf.setSize(d);
39 imgf.setMimetype(iif.getMimeType());
40 //logger.debug(" format:"+iif.getFormatName());
41 raf.close();
42 logger.debug("image size: " + imgf.getSize());
43 return imgf;
44 } else {
45 raf.close();
46 }
47 return null;
48 }
49
50
51 }