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