annotate servlet/src/digilib/io/ImageFile.java @ 562:51b9b153e99a digilibPDF

starting stream support
author robcast
date Mon, 20 Dec 2010 11:57:55 +0100
parents 4c2ff12584a6
children a43dcac4163c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
1 /* ImageFile.java -- digilib image file class.
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
2
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
3 Digital Image Library servlet components
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
4
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
5 Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de)
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
6
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
7 This program is free software; you can redistribute it and/or modify it
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
9 Free Software Foundation; either version 2 of the License, or (at your
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
10 option) any later version.
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
11
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
12 Please read license.txt for the full details. A copy of the GPL
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
13 may be found at http://www.gnu.org/copyleft/lgpl.html
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
14
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
16 along with this program; if not, write to the Free Software
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
18
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
19 * Created on 25.02.2003
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
20 */
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
21
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
22 package digilib.io;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
23
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
24 import java.io.File;
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
25 import java.io.InputStream;
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
26
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
27 import digilib.image.ImageSize;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
28
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
29 /**
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
30 * @author casties
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
31 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
32 public class ImageFile implements ImageInput {
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
33
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
34 // file name
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
35 private String filename = null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
36 // parent ImageFileset
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
37 private ImageFileset parent = null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
38 // parent directory
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
39 private Directory dir = null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
40 // mime file type
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
41 private String mimetype = null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
42 // image size in pixels
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
43 private ImageSize pixelSize = null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
44
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
45 public ImageFile(String fn, ImageFileset parent, Directory dir) {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
46 this.filename = fn;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
47 this.parent = parent;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
48 this.dir = dir;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
49 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
50
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
51 public ImageFile(String fn) {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
52 File f = new File(fn);
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
53 this.dir = new Directory(f.getParentFile());
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
54 this.filename = f.getName();
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
55 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
56
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
57
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
58 @Override
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
59 public boolean hasFile() {
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
60 // this is File-based
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
61 return true;
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
62 }
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
63
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
64 @Override
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
65 public boolean hasStream() {
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
66 return false;
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
67 }
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
68
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
69 /** Returns the file name (without path).
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
70 *
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
71 * @return
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
72 */
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
73 public String getName() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
74 return filename;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
75 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
76
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
77
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
78 /**
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
79 * @return File
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
80 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
81 @Override
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
82 public File getFile() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
83 if (dir == null) {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
84 return null;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
85 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
86 File f = new File(dir.getDir(), filename);
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
87 return f;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
88 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
89
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
90 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
91 * @see digilib.io.ImageInput#getSize()
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
92 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
93 @Override
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
94 public ImageSize getSize() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
95 return pixelSize;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
96 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
97
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
98 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
99 * @see digilib.io.ImageInput#getMimetype()
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
100 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
101 @Override
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
102 public String getMimetype() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
103 return mimetype;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
104 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
105
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
106 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
107 * @see digilib.io.ImageInput#setSize(digilib.image.ImageSize)
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
108 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
109 @Override
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
110 public void setSize(ImageSize imageSize) {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
111 this.pixelSize = imageSize;
459
4c2ff12584a6 Servlet version 1.10b
robcast
parents: 291
diff changeset
112 // pass on to parent
4c2ff12584a6 Servlet version 1.10b
robcast
parents: 291
diff changeset
113 if (this.parent != null) {
4c2ff12584a6 Servlet version 1.10b
robcast
parents: 291
diff changeset
114 this.parent.setAspect(imageSize);
4c2ff12584a6 Servlet version 1.10b
robcast
parents: 291
diff changeset
115 }
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
116 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
117
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
118 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
119 * @see digilib.io.ImageInput#setMimetype(java.lang.String)
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
120 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
121 @Override
280
520f32f013ca Servlet version 1.22b1
robcast
parents: 166
diff changeset
122 public void setMimetype(String filetype) {
520f32f013ca Servlet version 1.22b1
robcast
parents: 166
diff changeset
123 this.mimetype = filetype;
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
124 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
125
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
126 /**
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
127 * @return ImageFileset
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
128 */
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
129 public ImageFileset getParent() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
130 return parent;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
131 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
132
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
133 /**
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
134 * Sets the parent.
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
135 * @param parent The parent to set
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
136 */
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
137 public void setParent(ImageFileset parent) {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
138 this.parent = parent;
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
139 }
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
140
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
141 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
142 * @see digilib.io.ImageInput#isChecked()
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
143 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
144 @Override
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
145 public boolean isChecked() {
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
146 return (pixelSize != null);
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
147 }
166
7fab3f021338 Servlet Version 1.16b2 with new DigilibParameter code.
robcast
parents: 155
diff changeset
148
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
149 /* (non-Javadoc)
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
150 * @see digilib.io.ImageInput#getAspect()
166
7fab3f021338 Servlet Version 1.16b2 with new DigilibParameter code.
robcast
parents: 155
diff changeset
151 */
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
152 @Override
291
0821922dffaa Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents: 280
diff changeset
153 public float getAspect() {
166
7fab3f021338 Servlet Version 1.16b2 with new DigilibParameter code.
robcast
parents: 155
diff changeset
154 return (pixelSize != null) ? pixelSize.getAspect() : 0;
7fab3f021338 Servlet Version 1.16b2 with new DigilibParameter code.
robcast
parents: 155
diff changeset
155 }
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
156
562
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
157 @Override
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
158 public InputStream getStream() {
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
159 return null;
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
160 }
51b9b153e99a starting stream support
robcast
parents: 459
diff changeset
161
155
99c43e6eb74e servlet version 1.16a4
robcast
parents:
diff changeset
162 }