annotate servlet/src/digilib/image/ImageInfoDocuImage.java @ 588:aee436f0549d stream

more work on stream input
author robcast
date Thu, 06 Jan 2011 14:37:50 +0100
parents 50f291d808b1
children 69bc69381ac4
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
566
50f291d808b1 starting stream support
robcast
parents: 564
diff changeset
12 import digilib.io.ImageInput;
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
13
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
14 /** Simple abstract implementation of the <code>DocuImage</code> interface.
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
15 * Implements only the identify method using the ImageInfo class.
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
16 * @author casties
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
17 *
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
18 */
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
19 public abstract class ImageInfoDocuImage extends DocuImageImpl {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
20
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
21 /** Check image size and type and store in ImageFile f */
588
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
22 public ImageInput identify(ImageInput ii) throws IOException {
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
23 // fileset to store the information
588
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
24 File f = ii.getFile();
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
25 if (f == null) {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
26 throw new IOException("File not found!");
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
27 }
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
28 RandomAccessFile raf = new RandomAccessFile(f, "r");
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
29 // set up ImageInfo object
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
30 ImageInfo iif = new ImageInfo();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
31 iif.setInput(raf);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
32 iif.setCollectComments(false);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
33 iif.setDetermineImageNumber(false);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
34 logger.debug("identifying (ImageInfo) " + f);
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
35 // try with ImageInfo first
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
36 if (iif.check()) {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
37 ImageSize d = new ImageSize(iif.getWidth(), iif.getHeight());
588
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
38 ii.setSize(d);
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
39 ii.setMimetype(iif.getMimeType());
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
40 //logger.debug(" format:"+iif.getFormatName());
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
41 raf.close();
588
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
42 logger.debug("image size: " + ii.getSize());
aee436f0549d more work on stream input
robcast
parents: 566
diff changeset
43 return ii;
564
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
44 } else {
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
45 raf.close();
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
46 }
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
47 return null;
4c51d71aef13 more reshuffling of classes
robcast
parents:
diff changeset
48 }
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 }