Mercurial > hg > digilib-old
annotate common/src/main/java/digilib/image/ImageInfoDocuImage.java @ 1134:cd594aa261ec
fix defineArea bug in IE; reintroduce CSS opacity filters for IE 6-8
| author | hertzhaft |
|---|---|
| date | Tue, 13 Nov 2012 20:18:11 +0100 |
| parents | 6853c02b238b |
| children |
| rev | line source |
|---|---|
| 564 | 1 /** |
| 2 * | |
| 3 */ | |
| 4 package digilib.image; | |
| 5 | |
| 6 import java.io.IOException; | |
| 7 import java.io.RandomAccessFile; | |
| 8 | |
| 894 | 9 import org.devlib.schmidt.imageinfo.ImageInfo; |
| 564 | 10 |
| 566 | 11 import digilib.io.ImageInput; |
| 596 | 12 import digilib.util.ImageSize; |
| 564 | 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 | |
| 590 | 21 /* Check image size and type and store in ImageFile f */ |
| 588 | 22 public ImageInput identify(ImageInput ii) throws IOException { |
| 590 | 23 logger.debug("identifying (ImageInfo) " + ii); |
|
819
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
24 RandomAccessFile raf = null; |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
25 try { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
26 // set up ImageInfo object |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
27 ImageInfo iif = new ImageInfo(); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
28 if (ii.hasImageInputStream()) { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
29 iif.setInput(ii.getImageInputStream()); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
30 } else if (ii.hasFile()) { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
31 raf = new RandomAccessFile(ii.getFile(), "r"); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
32 iif.setInput(raf); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
33 } else { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
34 return null; |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
35 } |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
36 iif.setCollectComments(false); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
37 iif.setDetermineImageNumber(false); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
38 // try with ImageInfo first |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
39 if (iif.check()) { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
40 ImageSize d = new ImageSize(iif.getWidth(), iif.getHeight()); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
41 ii.setSize(d); |
| 924 | 42 String mt = iif.getMimeType(); |
| 43 // fix image/pjpeg | |
| 44 if (mt.equals("image/pjpeg")) { | |
| 45 mt = "image/jpeg"; | |
| 46 } | |
| 47 ii.setMimetype(mt); | |
|
819
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
48 logger.debug("image size: " + ii.getSize()); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
49 return ii; |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
50 } |
| 836 | 51 } catch (Exception e) { |
| 52 logger.debug("ImageInfoDocuimage unable to identify.", e); | |
|
819
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
53 } finally { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
54 // close file, don't close stream(?) |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
55 if (raf != null) { |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
56 raf.close(); |
|
a23c4c15a6a8
clean up possible resource leaks. better behaviour with unknown image types.
robcast
parents:
596
diff
changeset
|
57 } |
| 590 | 58 } |
| 836 | 59 return null; |
| 564 | 60 } |
| 61 | |
| 62 | |
| 63 } |
