Mercurial > hg > digilib-old
annotate common/src/main/java/digilib/image/DocuImage.java @ 1148:05413c47a976
new parameter showAnnotationNumbers (for rectangles).
author | robcast |
---|---|
date | Fri, 23 Nov 2012 18:02:52 +0100 |
parents | 4e368c85cce4 |
children |
rev | line source |
---|---|
1 | 1 /* DocuImage -- General image interface class |
2 | |
3 Digital Image Library servlet components | |
4 | |
85 | 5 Copyright (C) 2001, 2002, 2003 Robert Casties (robcast@mail.berlios.de) |
1 | 6 |
7 This program is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 2 of the License, or (at your | |
10 option) any later version. | |
11 | |
12 Please read license.txt for the full details. A copy of the GPL | |
13 may be found at http://www.gnu.org/copyleft/lgpl.html | |
14 | |
15 You should have received a copy of the GNU General Public License | |
16 along with this program; if not, write to the Free Software | |
149 | 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
1 | 18 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
19 */ |
1 | 20 |
21 package digilib.image; | |
22 | |
85 | 23 import java.awt.Rectangle; |
462
03ff7238c9d4
second try for flashpix support (doesn't work currently...)
robcast
parents:
278
diff
changeset
|
24 import java.io.IOException; |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
25 import java.io.OutputStream; |
463 | 26 import java.util.Iterator; |
73 | 27 |
28 import digilib.io.FileOpException; | |
566 | 29 import digilib.io.ImageInput; |
596 | 30 import digilib.util.ImageSize; |
73 | 31 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
32 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
33 * The basic class for the representation of a digilib image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
34 * |
73 | 35 * The actual image object is hidden in the class, only methods for loading, |
36 * manipulation, and saving are exported. This strategy enables implementations | |
37 * using different toolkits that rely on different image base classes (like | |
38 * JIMI, Java2D and JAI). | |
39 */ | |
1 | 40 public interface DocuImage { |
41 | |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
42 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
43 * Loads an image file into the Object. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
44 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
45 * @param ii |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
46 * Image File. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
47 * @throws FileOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
48 * Exception thrown if any error occurs. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
49 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
50 public void loadImage(ImageInput ii) throws FileOpException; |
1 | 51 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
52 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
53 * This DocuImage supports the loadSubImage operation. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
54 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
55 * @return boolean |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
56 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
57 public boolean isSubimageSupported(); |
85 | 58 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
59 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
60 * Load only a subsampled region of the image file. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
61 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
62 * @param ii |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
63 * @param region |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
64 * @param subsample |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
65 * @throws FileOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
66 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
67 public void loadSubimage(ImageInput ii, Rectangle region, int subsample) throws FileOpException; |
85 | 68 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
69 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
70 * Writes the current image to an OutputStream. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
71 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
72 * The image is encoded to the mime-type <code>mt</code> and sent to the |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
73 * output stream <code>ostream</code>. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
74 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
75 * Currently only mime-types "image/jpeg" and "image/png" are supported. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
76 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
77 * @param mt |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
78 * mime-type of the image to be sent. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
79 * @param ostream |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
80 * OutputStream where the image is sent. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
81 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
82 * Exception in other cases. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
83 * @throws FileOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
84 * Exception on sending data |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
85 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
86 public void writeImage(String mt, OutputStream ostream) throws ImageOpException, FileOpException; |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
87 |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
88 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
89 * The width of the current image in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
90 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
91 * @return Image width in pixels. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
92 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
93 public int getWidth(); |
1 | 94 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
95 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
96 * The height of the current image in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
97 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
98 * @return Image height in pixels. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
99 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
100 public int getHeight(); |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
101 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
102 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
103 * The size of the current image in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
104 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
105 * @return |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
106 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
107 public ImageSize getSize(); |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
108 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
109 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
110 * The mime-type of the image, i.e. the mime-type of the input that was |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
111 * read. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
112 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
113 * @return String the mime-type of this image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
114 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
115 public String getMimetype(); |
86 | 116 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
117 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
118 * Crops the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
119 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
120 * Cuts out a region of the size <code>width</code> x <code>height</code> at |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
121 * the offset <code>xoff</code>, <code>yoff</code> from the current image |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
122 * and replaces the current image with the result. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
123 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
124 * @param xoff |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
125 * X offset of crop region |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
126 * @param yoff |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
127 * Y offset of crop region |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
128 * @param width |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
129 * width of crop region |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
130 * @param height |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
131 * height of crop region |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
132 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
133 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
134 public void crop(int xoff, int yoff, int width, int height) throws ImageOpException; |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
135 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
136 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
137 * Scales the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
138 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
139 * Replaces the current image with an image scaled by the factor |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
140 * <code>scale</code>. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
141 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
142 * @param scale |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
143 * scaling factor |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
144 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
145 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
146 public void scale(double scaleX, double scaleY) throws ImageOpException; |
1 | 147 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
148 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
149 * Crops and scales the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
150 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
151 * The current image is cropped to a rectangle of <code>width</code>, |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
152 * <code>height</code> at position <code>x_off</code>, <code>y_off</code>. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
153 * The resulting image is scaled by the factor <code>scale</code> using the |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
154 * interpolation quality <code>qual</code> (0=worst). |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
155 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
156 * @param x_off |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
157 * x offset of the crop rectangle in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
158 * @param y_off |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
159 * y offset of the crop rectangle in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
160 * @param width |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
161 * width of the crop rectangle in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
162 * @param height |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
163 * height of the crop rectangle in pixel. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
164 * @param scale |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
165 * scaling factor. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
166 * @param qual |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
167 * interpolation quality (0=worst). |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
168 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
169 * exception thrown on any error. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
170 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
171 public void cropAndScale(int x_off, int y_off, int width, int height, double scale, int qual) throws ImageOpException; |
85 | 172 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
173 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
174 * Rotates the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
175 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
176 * Replaces the current image with a rotated image. The image is rotated |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
177 * around the center by the <code>angle</code> given in degrees [0, 360] |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
178 * clockwise. Image size and aspect ratio are likely to change. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
179 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
180 * @param angle |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
181 * rotation angle in degree |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
182 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
183 public void rotate(double angle) throws ImageOpException; |
85 | 184 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
185 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
186 * Mirrors the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
187 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
188 * Replaces the current image with a mirrored image. The mirror axis goes |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
189 * through the center of the image and is rotated by <code>angle</code> |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
190 * degrees. Currently only horizontal and vertical mirroring (0 and 90 |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
191 * degree) are supported. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
192 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
193 * @param angle |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
194 * angle of mirror axis |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
195 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
196 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
197 public void mirror(double angle) throws ImageOpException; |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
198 |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
199 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
200 * Enhances brightness and contrast of the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
201 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
202 * Replaces the current image with a brightness and contrast enhanced image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
203 * Contrast is enhanced by multiplying the pixel value with the constant |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
204 * <code>mult</code>. Brightness is enhanced by adding the constant |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
205 * <code>add</code> to the pixel value. Operation: p1 = (p0*mult)+add. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
206 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
207 * @param mult |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
208 * multiplicative constant for contrast enhancement |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
209 * @param add |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
210 * additive constant for brightness enhancement |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
211 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
212 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
213 public void enhance(float mult, float add) throws ImageOpException; |
85 | 214 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
215 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
216 * Manipulates the colors of the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
217 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
218 * Replaces the current image with a color modified image. For the red, |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
219 * green and blue color channels all pixel values are multiplied by the |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
220 * constant <code>m</code> and added to the constant <code>a</code>. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
221 * Operation: p1 = (p0*m)+a. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
222 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
223 * @param rgbm |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
224 * multiplicative constants for red, green, blue |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
225 * @param rgba |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
226 * additive constant for red, green, blue |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
227 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
228 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
229 public void enhanceRGB(float[] rgbm, float[] rgba) throws ImageOpException; |
86 | 230 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
231 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
232 * Operations for colorOps. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
233 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
234 * GRAYSCALE: cast color image to grayscale NTSC_GRAY: convert color image |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
235 * to grayscale using NTSC formula INVERT: invert colors (every channel |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
236 * separately) MAP_GRAY_BGR: false color image from grayscale (0: blue, 128: |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
237 * green, 255: red) |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
238 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
239 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
240 public enum ColorOp { |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
241 GRAYSCALE, NTSC_GRAY, INVERT, MAP_GRAY_BGR |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
242 }; |
829 | 243 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
244 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
245 * Changes the colors of the current image. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
246 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
247 * Changes the colors of the current image. Operations are instances of |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
248 * ColorOp: |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
249 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
250 * GRAYSCALE: cast color image to grayscale NTSC_GRAY: convert color image |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
251 * to grayscale using NTSC formula INVERT: invert colors (every channel |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
252 * separately) MAP_GRAY_BGR: false color image from grayscale (0: blue, 128: |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
253 * green, 255: red) |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
254 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
255 * @throws ImageOpException |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
256 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
257 public void colorOp(ColorOp op) throws ImageOpException; |
829 | 258 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
259 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
260 * Returns the interpolation quality. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
261 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
262 * @return int |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
263 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
264 public int getQuality(); |
829 | 265 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
266 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
267 * Sets the interpolation quality. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
268 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
269 * @param quality |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
270 * The quality to set |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
271 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
272 public void setQuality(int quality); |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
273 |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
274 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
275 * Frees all resources bound to the DocuImage. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
276 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
277 * Things that should be freed are image objects and open files. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
278 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
279 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
280 public void dispose(); |
79
63c8186455c1
Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents:
73
diff
changeset
|
281 |
462
03ff7238c9d4
second try for flashpix support (doesn't work currently...)
robcast
parents:
278
diff
changeset
|
282 /** |
588 | 283 * Check image size and type and store in ImageInput ii |
462
03ff7238c9d4
second try for flashpix support (doesn't work currently...)
robcast
parents:
278
diff
changeset
|
284 */ |
588 | 285 public ImageInput identify(ImageInput ii) throws IOException; |
462
03ff7238c9d4
second try for flashpix support (doesn't work currently...)
robcast
parents:
278
diff
changeset
|
286 |
463 | 287 /** |
288 * Returns a list of supported image formats | |
289 */ | |
1032
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
290 public Iterator<String> getSupportedFormats(); |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
291 |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
292 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
293 * returns the underlying image as java.awt.Image (if possible, or null) |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
294 * |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
295 * @return |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
296 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
297 public java.awt.Image getAwtImage(); |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
298 |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
299 /** |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
300 * returns the version of the DocuImage implementation. |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
301 * @return |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
302 */ |
4e368c85cce4
CLOSED - # 22: wrong contrast setting. dito #23 (at least on OSX 10.7)
robcast
parents:
906
diff
changeset
|
303 public String getVersion(); |
463 | 304 |
1 | 305 } |