blob: 6c1db715b164e9b5d7f4697a618662517ae57150 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<html>
3<head>
4<!--
5Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
6DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7
8This code is free software; you can redistribute it and/or modify it
9under the terms of the GNU General Public License version 2 only, as
10published by the Free Software Foundation. Sun designates this
11particular file as subject to the "Classpath" exception as provided
12by Sun in the LICENSE file that accompanied this code.
13
14This code is distributed in the hope that it will be useful, but WITHOUT
15ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17version 2 for more details (a copy is included in the LICENSE file that
18accompanied this code).
19
20You should have received a copy of the GNU General Public License version
212 along with this work; if not, write to the Free Software Foundation,
22Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23
24Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
25CA 95054 USA or visit www.sun.com if you need additional information or
26have any questions.
27-->
28
29<title>Standard Metadata Format Specification</title>
30</head>
31
32<body bgcolor="white">
33
34<center><h1>
35Standard (Plug-in Neutral) Metadata Format Specification
36</h1></center>
37
38<p> The plug-in neutral "javax_imageio_1.0" format consists
39of a root node named "javax_imageio_1.0" which has child
40nodes "chroma", "compression", "dimension", "document", "text",
41"tile", and "transparency". The format is described by the
42following DTD:
43
44<pre>
45&lt;!DOCTYPE "javax_imageio_1.0" [
46
47 &lt;!ELEMENT "javax_imageio_1.0" (Chroma?, Compression?, Data?, Dimension?,
48 Document?, Text?, Transparency?)&gt;
49
50 &lt;!ELEMENT "Chroma" (ColorSpaceType?, NumChannels?, Gamma?,
51 BlackIsZero?, Palette?, BackgroundIndex?, BackgroundColor?)&gt;
52 &lt;!-- Chroma (color) information --&gt;
53
54 &lt;!ELEMENT "ColorSpaceType" EMPTY&gt;
55 &lt;!-- The raw color space of the image --&gt;
56 &lt;!ATTLIST "ColorSpaceType" "name" ("XYZ" | "Lab" | "Luv" |
57 "YCbCr" | "Yxy" | "YCCK" | "PhotoYCC" | "RGB" | "GRAY" | "HSV" |
58 "HLS" | "CMYK" | "CMY" | "2CLR" | "3CLR" | "4CLR" | "5CLR" |
59 "6CLR" | "7CLR" | "8CLR" | "9CLR" | "ACLR" | "BCLR" | "CCLR" |
60 "DCLR" | "ECLR" | "FCLR") #REQUIRED&gt;
61
62 &lt;!ELEMENT "NumChannels" EMPTY&gt;
63 &lt;!-- The number of channels in the raw image, including alpha --&gt;
64 &lt;!ATTLIST "NumChannels" "value" #CDATA #REQUIRED&gt;
65 &lt;!-- Data type: List of Integer --&gt;
66
67 &lt;!ELEMENT "Gamma" EMPTY&gt;
68 &lt;!-- The image gamma --&gt;
69 &lt;!ATTLIST "Gamma" "value" #CDATA #REQUIRED&gt;
70 &lt;!-- Data type: Float --&gt;
71
72 &lt;!ELEMENT "BlackIsZero" EMPTY&gt;
73 &lt;!-- True if smaller values represent darker shades --&gt;
74 &lt;!ATTLIST "BlackIsZero" "value" ("TRUE" | "FALSE") "TRUE"&gt;
75
76 &lt;!ELEMENT "Palette" (PaletteEntry)*&gt;
77 &lt;!-- Palette-color information --&gt;
78
79 &lt;!ELEMENT "PaletteEntry" EMPTY&gt;
80 &lt;!-- A palette entry --&gt;
81 &lt;!ATTLIST "PaletteEntry" "index" #CDATA #REQUIRED&gt;
82 &lt;!-- The index of the palette entry --&gt;
83 &lt;!-- Data type: Integer --&gt;
84 &lt;!ATTLIST "PaletteEntry" "red" #CDATA #REQUIRED&gt;
85 &lt;!-- The red value for the palette entry --&gt;
86 &lt;!-- Data type: Integer --&gt;
87 &lt;!ATTLIST "PaletteEntry" "green" #CDATA #REQUIRED&gt;
88 &lt;!-- The green value for the palette entry --&gt;
89 &lt;!-- Data type: Integer --&gt;
90 &lt;!ATTLIST "PaletteEntry" "blue" #CDATA #REQUIRED&gt;
91 &lt;!-- The blue value for the palette entry --&gt;
92 &lt;!-- Data type: Integer --&gt;
93 &lt;!ATTLIST "PaletteEntry" "alpha" #CDATA "255"&gt;
94 &lt;!-- The alpha value for the palette entry --&gt;
95 &lt;!-- Data type: Integer --&gt;
96
97 &lt;!ELEMENT "BackgroundIndex" EMPTY&gt;
98 &lt;!-- A palette index to be used as a background --&gt;
99 &lt;!ATTLIST "BackgroundIndex" "value" #CDATA #REQUIRED&gt;
100 &lt;!-- Data type: Integer --&gt;
101
102 &lt;!ELEMENT "BackgroundColor" EMPTY&gt;
103 &lt;!-- An RGB triple to be used as a background --&gt;
104 &lt;!ATTLIST "BackgroundColor" "red" #CDATA #REQUIRED&gt;
105 &lt;!-- The red background value --&gt;
106 &lt;!-- Data type: Integer --&gt;
107 &lt;!ATTLIST "BackgroundColor" "green" #CDATA #REQUIRED&gt;
108 &lt;!-- The green background value --&gt;
109 &lt;!-- Data type: Integer --&gt;
110 &lt;!ATTLIST "BackgroundColor" "blue" #CDATA #REQUIRED&gt;
111 &lt;!-- The blue background value --&gt;
112 &lt;!-- Data type: Integer --&gt;
113
114 &lt;!ELEMENT "Compression" (CompressionTypeName?, Lossless?,
115 NumProgressiveScans?, BitRate?)&gt;
116 &lt;!-- Compression information --&gt;
117
118 &lt;!ELEMENT "CompressionTypeName" EMPTY&gt;
119 &lt;!-- The name of the compression scheme in use --&gt;
120 &lt;!ATTLIST "CompressionTypeName" "value" #CDATA #REQUIRED&gt;
121 &lt;!-- Data type: String --&gt;
122
123 &lt;!ELEMENT "Lossless" EMPTY&gt;
124 &lt;!-- True if the compression scheme is lossless --&gt;
125 &lt;!ATTLIST "Lossless" "value" ("TRUE" | "FALSE") "TRUE"&gt;
126
127 &lt;!ELEMENT "NumProgressiveScans" EMPTY&gt;
128 &lt;!-- The number of progressive scans used in the image encoding --&gt;
129 &lt;!ATTLIST "NumProgressiveScans" "value" #CDATA #REQUIRED&gt;
130 &lt;!-- Data type: Integer --&gt;
131
132 &lt;!ELEMENT "BitRate" EMPTY&gt;
133 &lt;!-- The estimated bit rate of the compression scheme --&gt;
134 &lt;!ATTLIST "BitRate" "value" #CDATA #REQUIRED&gt;
135 &lt;!-- Data type: Float --&gt;
136
137 &lt;!ELEMENT "Data" (PlanarConfiguration?, SampleFormat?, BitsPerSample?,
138 SignificantBitsPerSample?, SampleMSB?)&gt;
139 &lt;!-- Information on the image layout --&gt;
140
141 &lt;!ELEMENT "PlanarConfiguration" EMPTY&gt;
142 &lt;!-- The organization of image samples in the stream --&gt;
143 &lt;!ATTLIST "PlanarConfiguration" "value" ("PixelInterleaved" |
144 "PlaneInterleaved" | "LineInterleaved" | "TileInterleaved")
145 #REQUIRED&gt;
146
147 &lt;!ELEMENT "SampleFormat" EMPTY&gt;
148 &lt;!-- The numeric format of image samples --&gt;
149 &lt;!ATTLIST "SampleFormat" "value" ("SignedIntegral" |
150 "UnsignedIntegral" | "Real" | "Index") #REQUIRED&gt;
151
152 &lt;!ELEMENT "BitsPerSample" EMPTY&gt;
153 &lt;!-- The number of bits per sample --&gt;
154 &lt;!ATTLIST "BitsPerSample" "value" #CDATA #REQUIRED&gt;
155 &lt;!-- A list of integers, one per channel --&gt;
156 &lt;!-- Data type: List of Integer --&gt;
157 &lt;!-- Min length: 1 --&gt;
158
159 &lt;!ELEMENT "SignificantBitsPerSample" EMPTY&gt;
160 &lt;!-- The number of significant bits per sample --&gt;
161 &lt;!ATTLIST "SignificantBitsPerSample" "value" #CDATA #REQUIRED&gt;
162 &lt;!-- A list of integers, one per channel --&gt;
163 &lt;!-- Data type: List of Integer --&gt;
164 &lt;!-- Min length: 1 --&gt;
165
166 &lt;!ELEMENT "SampleMSB" EMPTY&gt;
167 &lt;!-- The position of the most significant bit of each sample --&gt;
168 &lt;!ATTLIST "SampleMSB" "value" #CDATA #REQUIRED&gt;
169 &lt;!-- A list of integers, one per channel --&gt;
170 &lt;!-- Data type: List of Integer --&gt;
171 &lt;!-- Min length: 1 --&gt;
172
173 &lt;!ELEMENT "Dimension" (PixelAspectRatio?, ImageOrientation?,
174 HorizontalPixelSize?, VerticalPixelSize?,
175 HorizontalPhysicalPixelSpacing?, VerticalPhysicalPixelSpacing?,
176 HorizontalPosition?, VerticalPosition?, HorizontalPixelOffset?,
177 VerticalPixelOffset?, HorizontalScreenSize?, VerticalScreenSize?)&gt;
178 &lt;!-- Dimension information --&gt;
179
180 &lt;!ELEMENT "PixelAspectRatio" EMPTY&gt;
181 &lt;!-- The width of a pixel divided by its height --&gt;
182 &lt;!ATTLIST "PixelAspectRatio" "value" #CDATA #REQUIRED&gt;
183 &lt;!-- Data type: Float --&gt;
184
185 &lt;!ELEMENT "ImageOrientation" EMPTY&gt;
186 &lt;!-- The desired orientation of the image in terms of flips and
187 counter-clockwise rotations --&gt;
188 &lt;!ATTLIST "ImageOrientation" "value" ("Normal" | "Rotate90" |
189 "Rotate180" | "Rotate270" | "FlipH" | "FlipV" |
190 "FlipHRotate90" | "FlipVRotate90") #REQUIRED&gt;
191
192 &lt;!ELEMENT "HorizontalPixelSize" EMPTY&gt;
193 &lt;!-- The width of a pixel, in millimeters, as it should be rendered
194 on media --&gt;
195 &lt;!ATTLIST "HorizontalPixelSize" "value" #CDATA #REQUIRED&gt;
196 &lt;!-- Data type: Float --&gt;
197
198 &lt;!ELEMENT "VerticalPixelSize" EMPTY&gt;
199 &lt;!-- The height of a pixel, in millimeters, as it should be
200 rendered on media --&gt;
201 &lt;!ATTLIST "VerticalPixelSize" "value" #CDATA #REQUIRED&gt;
202 &lt;!-- Data type: Float --&gt;
203
204 &lt;!ELEMENT "HorizontalPhysicalPixelSpacing" EMPTY&gt;
205 &lt;!-- The horizontal distance in the subject of the image, in
206 millimeters, represented by one pixel at the center of the
207 image --&gt;
208 &lt;!ATTLIST "HorizontalPhysicalPixelSpacing" "value" #CDATA #REQUIRED&gt;
209 &lt;!-- Data type: Float --&gt;
210
211 &lt;!ELEMENT "VerticalPhysicalPixelSpacing" EMPTY&gt;
212 &lt;!-- The vertical distance in the subject of the image, in
213 millimeters, represented by one pixel at the center of the
214 image --&gt;
215 &lt;!ATTLIST "VerticalPhysicalPixelSpacing" "value" #CDATA #REQUIRED&gt;
216 &lt;!-- Data type: Float --&gt;
217
218 &lt;!ELEMENT "HorizontalPosition" EMPTY&gt;
219 &lt;!-- The horizontal position, in millimeters, where the image
220 should be rendered on media --&gt;
221 &lt;!ATTLIST "HorizontalPosition" "value" #CDATA #REQUIRED&gt;
222 &lt;!-- Data type: Float --&gt;
223
224 &lt;!ELEMENT "VerticalPosition" EMPTY&gt;
225 &lt;!-- The vertical position, in millimeters, where the image should
226 be rendered on media --&gt;
227 &lt;!ATTLIST "VerticalPosition" "value" #CDATA #REQUIRED&gt;
228 &lt;!-- Data type: Float --&gt;
229
230 &lt;!ELEMENT "HorizontalPixelOffset" EMPTY&gt;
231 &lt;!-- The horizonal position, in pixels, where the image should be
232 rendered onto a raster display --&gt;
233 &lt;!ATTLIST "HorizontalPixelOffset" "value" #CDATA #REQUIRED&gt;
234 &lt;!-- Data type: Integer --&gt;
235
236 &lt;!ELEMENT "VerticalPixelOffset" EMPTY&gt;
237 &lt;!-- The vertical position, in pixels, where the image should be
238 rendered onto a raster display --&gt;
239 &lt;!ATTLIST "VerticalPixelOffset" "value" #CDATA #REQUIRED&gt;
240 &lt;!-- Data type: Integer --&gt;
241
242 &lt;!ELEMENT "HorizontalScreenSize" EMPTY&gt;
243 &lt;!-- The width, in pixels, of the raster display into which the
244 image should be rendered --&gt;
245 &lt;!ATTLIST "HorizontalScreenSize" "value" #CDATA #REQUIRED&gt;
246 &lt;!-- Data type: Integer --&gt;
247
248 &lt;!ELEMENT "VerticalScreenSize" EMPTY&gt;
249 &lt;!-- The height, in pixels, of the raster display into which the
250 image should be rendered --&gt;
251 &lt;!ATTLIST "VerticalScreenSize" "value" #CDATA #REQUIRED&gt;
252 &lt;!-- Data type: Integer --&gt;
253
254 &lt;!ELEMENT "Document" (FormatVersion?, SubimageInterpretation?,
255 ImageCreationTime?, ImageModificationTime?)&gt;
256 &lt;!-- Document information --&gt;
257
258 &lt;!ELEMENT "FormatVersion" EMPTY&gt;
259 &lt;!-- The version of the format used by the stream --&gt;
260 &lt;!ATTLIST "FormatVersion" "value" #CDATA #REQUIRED&gt;
261 &lt;!-- Data type: String --&gt;
262
263 &lt;!ELEMENT "SubimageInterpretation" EMPTY&gt;
264 &lt;!-- The interpretation of this image in relation to the other
265 images stored in the same stream --&gt;
266 &lt;!ATTLIST "SubimageInterpretation" "value" ("Standalone" |
267 "SinglePage" | "FullResolution" | "ReducedResolution" |
268 "PyramidLayer" | "Preview" | "VolumeSlice" | "ObjectView" |
269 "Panorama" | "AnimationFrame" | "TransparencyMask" |
270 "CompositingLayer" | "SpectralSlice" | "Unknown") #REQUIRED&gt;
271
272 &lt;!ELEMENT "ImageCreationTime" EMPTY&gt;
273 &lt;!-- The time of image creation --&gt;
274 &lt;!ATTLIST "ImageCreationTime" "year" #CDATA #REQUIRED&gt;
275 &lt;!-- The full year (e.g., 1967, not 67) --&gt;
276 &lt;!-- Data type: Integer --&gt;
277 &lt;!ATTLIST "ImageCreationTime" "month" #CDATA #REQUIRED&gt;
278 &lt;!-- The month, with January = 1 --&gt;
279 &lt;!-- Data type: Integer --&gt;
280 &lt;!-- Min value: 1 (inclusive) --&gt;
281 &lt;!-- Max value: 12 (inclusive) --&gt;
282 &lt;!ATTLIST "ImageCreationTime" "day" #CDATA #REQUIRED&gt;
283 &lt;!-- The day of the month --&gt;
284 &lt;!-- Data type: Integer --&gt;
285 &lt;!-- Min value: 1 (inclusive) --&gt;
286 &lt;!-- Max value: 31 (inclusive) --&gt;
287 &lt;!ATTLIST "ImageCreationTime" "hour" #CDATA "0"&gt;
288 &lt;!-- The hour from 0 to 23 --&gt;
289 &lt;!-- Data type: Integer --&gt;
290 &lt;!-- Min value: 0 (inclusive) --&gt;
291 &lt;!-- Max value: 23 (inclusive) --&gt;
292 &lt;!ATTLIST "ImageCreationTime" "minute" #CDATA "0"&gt;
293 &lt;!-- The minute from 0 to 59 --&gt;
294 &lt;!-- Data type: Integer --&gt;
295 &lt;!-- Min value: 0 (inclusive) --&gt;
296 &lt;!-- Max value: 59 (inclusive) --&gt;
297 &lt;!ATTLIST "ImageCreationTime" "second" #CDATA "0"&gt;
298 &lt;!-- The second from 0 to 60 (60 = leap second) --&gt;
299 &lt;!-- Data type: Integer --&gt;
300 &lt;!-- Min value: 0 (inclusive) --&gt;
301 &lt;!-- Max value: 60 (inclusive) --&gt;
302
303 &lt;!ELEMENT "ImageModificationTime" EMPTY&gt;
304 &lt;!-- The time of the last image modification --&gt;
305 &lt;!ATTLIST "ImageModificationTime" "year" #CDATA #REQUIRED&gt;
306 &lt;!-- The full year (e.g., 1967, not 67) --&gt;
307 &lt;!-- Data type: Integer --&gt;
308 &lt;!ATTLIST "ImageModificationTime" "month" #CDATA #REQUIRED&gt;
309 &lt;!-- The month, with January = 1 --&gt;
310 &lt;!-- Data type: Integer --&gt;
311 &lt;!-- Min value: 1 (inclusive) --&gt;
312 &lt;!-- Max value: 12 (inclusive) --&gt;
313 &lt;!ATTLIST "ImageModificationTime" "day" #CDATA #REQUIRED&gt;
314 &lt;!-- The day of the month --&gt;
315 &lt;!-- Data type: Integer --&gt;
316 &lt;!-- Min value: 1 (inclusive) --&gt;
317 &lt;!-- Max value: 31 (inclusive) --&gt;
318 &lt;!ATTLIST "ImageModificationTime" "hour" #CDATA "0"&gt;
319 &lt;!-- The hour from 0 to 23 --&gt;
320 &lt;!-- Data type: Integer --&gt;
321 &lt;!-- Min value: 0 (inclusive) --&gt;
322 &lt;!-- Max value: 23 (inclusive) --&gt;
323 &lt;!ATTLIST "ImageModificationTime" "minute" #CDATA "0"&gt;
324 &lt;!-- The minute from 0 to 59 --&gt;
325 &lt;!-- Data type: Integer --&gt;
326 &lt;!-- Min value: 0 (inclusive) --&gt;
327 &lt;!-- Max value: 59 (inclusive) --&gt;
328 &lt;!ATTLIST "ImageModificationTime" "second" #CDATA "0"&gt;
329 &lt;!-- The second from 0 to 60 (60 = leap second) --&gt;
330 &lt;!-- Data type: Integer --&gt;
331 &lt;!-- Min value: 0 (inclusive) --&gt;
332 &lt;!-- Max value: 60 (inclusive) --&gt;
333
334 &lt;!ELEMENT "Text" (TextEntry)*&gt;
335 &lt;!-- Text information --&gt;
336
337 &lt;!ELEMENT "TextEntry" EMPTY&gt;
338 &lt;!-- A text entry --&gt;
339 &lt;!ATTLIST "TextEntry" "keyword" #CDATA #IMPLIED&gt;
340 &lt;!-- A keyword associated with the text entry --&gt;
341 &lt;!-- Data type: String --&gt;
342 &lt;!ATTLIST "TextEntry" "value" #CDATA #REQUIRED&gt;
343 &lt;!-- the text entry --&gt;
344 &lt;!-- Data type: String --&gt;
345 &lt;!ATTLIST "TextEntry" "language" #CDATA #IMPLIED&gt;
346 &lt;!-- The language of the text --&gt;
347 &lt;!-- Data type: String --&gt;
348 &lt;!ATTLIST "TextEntry" "encoding" #CDATA #IMPLIED&gt;
349 &lt;!-- The encoding of the text --&gt;
350 &lt;!-- Data type: String --&gt;
351 &lt;!ATTLIST "TextEntry" "compression" ("none" | "lzw" | "zip" |
352 "bzip" | "other") "none"&gt;
353 &lt;!-- The method used to compress the text --&gt;
354
355 &lt;!ELEMENT "Transparency" (Alpha?, TransparentIndex?,
356 TransparentColor?, TileTransparencies?, TileOpacities?)&gt;
357 &lt;!-- Transparency information --&gt;
358
359 &lt;!ELEMENT "Alpha" EMPTY&gt;
360 &lt;!-- The type of alpha information contained in the image --&gt;
361 &lt;!ATTLIST "Alpha" "value" ("none" | "premultiplied" |
362 "nonpremultiplied") "none"&gt;
363
364 &lt;!ELEMENT "TransparentIndex" EMPTY&gt;
365 &lt;!-- A palette index to be treated as transparent --&gt;
366 &lt;!ATTLIST "TransparentIndex" "value" #CDATA #REQUIRED&gt;
367 &lt;!-- Data type: Integer --&gt;
368
369 &lt;!ELEMENT "TransparentColor" EMPTY&gt;
370 &lt;!-- An RGB color to be treated as transparent --&gt;
371 &lt;!ATTLIST "TransparentColor" "value" #CDATA #REQUIRED&gt;
372 &lt;!-- Data type: List of Integer --&gt;
373
374 &lt;!ELEMENT "TileTransparencies" (TransparentTile)*&gt;
375 &lt;!-- A list of completely transparent tiles --&gt;
376
377 &lt;!ELEMENT "TransparentTile" EMPTY&gt;
378 &lt;!-- The index of a completely transparent tile --&gt;
379 &lt;!ATTLIST "TransparentTile" "x" #CDATA #REQUIRED&gt;
380 &lt;!-- The tile's X index --&gt;
381 &lt;!-- Data type: Integer --&gt;
382 &lt;!ATTLIST "TransparentTile" "y" #CDATA #REQUIRED&gt;
383 &lt;!-- The tile's Y index --&gt;
384 &lt;!-- Data type: Integer --&gt;
385
386 &lt;!ELEMENT "TileOpacities" (OpaqueTile)*&gt;
387 &lt;!-- A list of completely opaque tiles --&gt;
388
389 &lt;!ELEMENT "OpaqueTile" EMPTY&gt;
390 &lt;!-- The index of a completely opaque tile --&gt;
391 &lt;!ATTLIST "OpaqueTile" "x" #CDATA #REQUIRED&gt;
392 &lt;!-- The tile's X index --&gt;
393 &lt;!-- Data type: Integer --&gt;
394 &lt;!ATTLIST "OpaqueTile" "y" #CDATA #REQUIRED&gt;
395 &lt;!-- The tile's Y index --&gt;
396 &lt;!-- Data type: Integer --&gt;
397]&gt;
398</pre>
399
400</body>
401</html>