annotate servlet/src/digilib/image/ImageInfoDocuImage.java @ 574:790cbfb58b52 stream

ripping apart ImageFileSet
author robcast
date Wed, 22 Dec 2010 18:32:06 +0100
parents 50f291d808b1
children aee436f0549d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
1 /**
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
2 *
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
3 */
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
4 package digilib.image;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
5
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
6 import java.io.File;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
7 import java.io.IOException;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
8 import java.io.RandomAccessFile;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
9
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
10 import org.marcoschmidt.image.ImageInfo;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
11
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
12 import digilib.io.ImageFile;
566
50f291d808b1 starting stream support
robcast
parents: 564
diff changeset
13 import digilib.io.ImageInput;
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
14
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
15 /** Simple abstract implementation of the <code>DocuImage</code> interface.
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
16 * Implements only the identify method using the ImageInfo class.
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
17 * @author casties
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
18 *
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
19 */
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
20 public abstract class ImageInfoDocuImage extends DocuImageImpl {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
21
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
22 /** Check image size and type and store in ImageFile f */
566
50f291d808b1 starting stream support
robcast
parents: 564
diff changeset
23 public ImageInput identify(ImageFile imgf) throws IOException {
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
24 // fileset to store the information
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
25 File f = imgf.getFile();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
26 if (f == null) {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
27 throw new IOException("File not found!");
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
28 }
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
29 RandomAccessFile raf = new RandomAccessFile(f, "r");
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
30 // set up ImageInfo object
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
31 ImageInfo iif = new ImageInfo();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
32 iif.setInput(raf);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
33 iif.setCollectComments(false);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
34 iif.setDetermineImageNumber(false);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
35 logger.debug("identifying (ImageInfo) " + f);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
36 // try with ImageInfo first
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
37 if (iif.check()) {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
38 ImageSize d = new ImageSize(iif.getWidth(), iif.getHeight());
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
39 imgf.setSize(d);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
40 imgf.setMimetype(iif.getMimeType());
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
41 //logger.debug(" format:"+iif.getFormatName());
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
42 raf.close();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
43 logger.debug("image size: " + imgf.getSize());
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
44 return imgf;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
45 } else {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
46 raf.close();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
47 }
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
48 return null;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
49 }
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
50
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
51
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
52 }