annotate servlet/src/digilib/io/ImageInput.java @ 588:aee436f0549d stream

more work on stream input
author robcast
date Thu, 06 Jan 2011 14:37:50 +0100
parents 720d061a1b30
children 2b58d2783ef0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
1 /* ImageInput-- digilib image input interface.
50f291d808b1 starting stream support
robcast
parents:
diff changeset
2
50f291d808b1 starting stream support
robcast
parents:
diff changeset
3 Digital Image Library servlet components
50f291d808b1 starting stream support
robcast
parents:
diff changeset
4
50f291d808b1 starting stream support
robcast
parents:
diff changeset
5 Copyright (C) 2010 Robert Casties (robcast@mail.berlios.de)
50f291d808b1 starting stream support
robcast
parents:
diff changeset
6
50f291d808b1 starting stream support
robcast
parents:
diff changeset
7 This program is free software; you can redistribute it and/or modify it
50f291d808b1 starting stream support
robcast
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
50f291d808b1 starting stream support
robcast
parents:
diff changeset
9 Free Software Foundation; either version 2 of the License, or (at your
50f291d808b1 starting stream support
robcast
parents:
diff changeset
10 option) any later version.
50f291d808b1 starting stream support
robcast
parents:
diff changeset
11
50f291d808b1 starting stream support
robcast
parents:
diff changeset
12 Please read license.txt for the full details. A copy of the GPL
50f291d808b1 starting stream support
robcast
parents:
diff changeset
13 may be found at http://www.gnu.org/copyleft/lgpl.html
50f291d808b1 starting stream support
robcast
parents:
diff changeset
14
50f291d808b1 starting stream support
robcast
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
50f291d808b1 starting stream support
robcast
parents:
diff changeset
16 along with this program; if not, write to the Free Software
50f291d808b1 starting stream support
robcast
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
50f291d808b1 starting stream support
robcast
parents:
diff changeset
18
50f291d808b1 starting stream support
robcast
parents:
diff changeset
19 * Created on 20.12.2010
50f291d808b1 starting stream support
robcast
parents:
diff changeset
20 */
50f291d808b1 starting stream support
robcast
parents:
diff changeset
21
50f291d808b1 starting stream support
robcast
parents:
diff changeset
22 package digilib.io;
50f291d808b1 starting stream support
robcast
parents:
diff changeset
23
587
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
24 import java.io.File;
588
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
25 import java.io.InputStream;
587
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
26
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
27 import javax.imageio.stream.ImageInputStream;
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
28
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
29 import digilib.image.ImageSize;
50f291d808b1 starting stream support
robcast
parents:
diff changeset
30
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
31 public abstract class ImageInput {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
32
34701340922e more starting stream support
robcast
parents: 566
diff changeset
33 // mime file type
34701340922e more starting stream support
robcast
parents: 566
diff changeset
34 protected String mimetype = null;
34701340922e more starting stream support
robcast
parents: 566
diff changeset
35 // image size in pixels
34701340922e more starting stream support
robcast
parents: 566
diff changeset
36 protected ImageSize pixelSize = null;
588
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
37 protected ImageSet parent = null;
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
38
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
39 /**
50f291d808b1 starting stream support
robcast
parents:
diff changeset
40 * @return ImageSize
50f291d808b1 starting stream support
robcast
parents:
diff changeset
41 */
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
42 public ImageSize getSize() {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
43 return pixelSize;
34701340922e more starting stream support
robcast
parents: 566
diff changeset
44 }
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
45
50f291d808b1 starting stream support
robcast
parents:
diff changeset
46 /**
50f291d808b1 starting stream support
robcast
parents:
diff changeset
47 * Sets the imageSize.
50f291d808b1 starting stream support
robcast
parents:
diff changeset
48 * @param imageSize The imageSize to set
50f291d808b1 starting stream support
robcast
parents:
diff changeset
49 */
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
50 public void setSize(ImageSize imageSize) {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
51 this.pixelSize = imageSize;
34701340922e more starting stream support
robcast
parents: 566
diff changeset
52 }
34701340922e more starting stream support
robcast
parents: 566
diff changeset
53
34701340922e more starting stream support
robcast
parents: 566
diff changeset
54 /**
34701340922e more starting stream support
robcast
parents: 566
diff changeset
55 * @return String
34701340922e more starting stream support
robcast
parents: 566
diff changeset
56 */
34701340922e more starting stream support
robcast
parents: 566
diff changeset
57 public String getMimetype() {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
58 return mimetype;
34701340922e more starting stream support
robcast
parents: 566
diff changeset
59 }
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
60
50f291d808b1 starting stream support
robcast
parents:
diff changeset
61 /**
50f291d808b1 starting stream support
robcast
parents:
diff changeset
62 * Sets the mimetype.
50f291d808b1 starting stream support
robcast
parents:
diff changeset
63 * @param mimetype The mimetype to set
50f291d808b1 starting stream support
robcast
parents:
diff changeset
64 */
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
65 public void setMimetype(String filetype) {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
66 this.mimetype = filetype;
34701340922e more starting stream support
robcast
parents: 566
diff changeset
67 }
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
68
50f291d808b1 starting stream support
robcast
parents:
diff changeset
69 /** returns if this image has been checked
581
bb8dfc05674f more ripping apart ImageFileSet
robcast
parents: 574
diff changeset
70 * (i.e. has size and mimetype)
bb8dfc05674f more ripping apart ImageFileSet
robcast
parents: 574
diff changeset
71 * TODO: deprecated
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
72 * @return boolean
50f291d808b1 starting stream support
robcast
parents:
diff changeset
73 */
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
74 public boolean isChecked() {
34701340922e more starting stream support
robcast
parents: 566
diff changeset
75 return (pixelSize != null);
34701340922e more starting stream support
robcast
parents: 566
diff changeset
76 }
34701340922e more starting stream support
robcast
parents: 566
diff changeset
77
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
78 /** Returns the aspect ratio of the image (width/height).
50f291d808b1 starting stream support
robcast
parents:
diff changeset
79 *
50f291d808b1 starting stream support
robcast
parents:
diff changeset
80 * @return
50f291d808b1 starting stream support
robcast
parents:
diff changeset
81 */
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
82 public float getAspect() {
585
95417c4615b8 more cleanup for ImageFileSet
robcast
parents: 581
diff changeset
83 return (pixelSize != null) ? pixelSize.getAspect() : 0f;
568
34701340922e more starting stream support
robcast
parents: 566
diff changeset
84 }
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
85
588
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
86 /**
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
87 * @return ImageSet
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
88 */
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
89 public ImageSet getParent() {
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
90 return parent;
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
91 }
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
92
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
93 /**
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
94 * Sets the parent.
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
95 * @param parent The parent to set
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
96 */
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
97 public void setParent(ImageSet parent) {
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
98 this.parent = parent;
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
99 }
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
100
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
101 /** Returns if the input can be returned as ImageInputStream.
587
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
102 *
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
103 * @return
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
104 */
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
105 public boolean hasImageInputStream() {
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
106 return false;
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
107 }
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
108
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
109 /** Returns the input as ImageInputStream (if available)
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
110 *
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
111 * @return
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
112 */
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
113 public ImageInputStream getImageInputStream() {
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
114 return null;
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
115 }
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
116
588
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
117 /** Returns if the input can be returned as InputStream.
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
118 *
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
119 * @return
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
120 */
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
121 public boolean hasInputStream() {
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
122 return false;
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
123 }
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
124
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
125 /** Returns the input as InputStream (if available)
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
126 *
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
127 * @return
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
128 */
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
129 public InputStream getInputStream() {
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
130 return null;
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
131 }
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
132
587
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
133 /** Returns if the input can be returned as File.
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
134 *
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
135 * @return
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
136 */
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
137 public boolean hasFile() {
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
138 return false;
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
139 }
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
140
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
141 /** Returns the input as File (if available)
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
142 *
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
143 * @return
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
144 */
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
145 public File getFile() {
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
146 return null;
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
147 }
588
aee436f0549d more work on stream input
robcast
parents: 587
diff changeset
148
587
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
149
720d061a1b30 more work on stream input
robcast
parents: 585
diff changeset
150
566
50f291d808b1 starting stream support
robcast
parents:
diff changeset
151 }