LibTIFF Coverage of the TIFF 6.0 Specification¶
The library is capable of dealing with images that are written to follow the 5.0 or 6.0 TIFF spec. There is also considerable support for some of the more esoteric portions of the 6.0 TIFF spec.
Core requirements |
Both Tags handled: |
Tiled Images |
|
Image Colorimetry Information |
|
Class B for bilevel images |
|
Class G for grayscale images |
|
Class P for palette color images |
|
Class R for RGB full color images |
|
Class F for facsimile |
(Class B tags plus…)
|
Class S for separated images |
|
Class Y for YCbCr images |
(colorimetry info from Appendix H; see above) |
Class “JPEG” for JPEG images (per TTN2) |
(Class Y tags if YCbCr) (Class S tags if CMYK)
|
In addition, the library supports some optional compression algorithms that are, in some cases, of dubious value.
Compression tag value |
Compression algorithm |
---|---|
32766 |
NeXT 2-bit encoding |
32809 |
ThunderScan 4-bit encoding |
32909 |
Pixar companded 11-bit ZIP encoding |
32946 |
PKZIP-style Deflate encoding (experimental) |
34676 |
SGI 32-bit Log Luminance encoding (experimental) |
34677 |
SGI 24-bit Log Luminance encoding (experimental) |
Note that there is no support for the JPEG-related tags defined in the 6.0 specification; the JPEG support is based on the post-6.0 proposal given in TIFF Technical Note #2.
Note
For more information on the experimental Log Luminance encoding consult the materials available at http://www.anyhere.com/gward/pixformat/tiffluv.html.
The following table shows the tags that are recognized and how they are used by the library. If no use is indicated, then the library reads and writes the tag, but does not use it internally.
Tag Name |
Value |
R/W< |
Library’s Use (Comments) |
---|---|---|---|
|
254 |
R/W |
none (called |
|
255 |
R/W |
none (called |
|
256 |
R/W |
lots |
|
257 |
R/W |
lots |
|
258 |
R/W |
lots |
|
259 |
R/W |
to select appropriate codec |
|
262 |
R/W |
lots |
|
263 |
R/W |
|
|
264 |
parsed but ignored |
|
|
265 |
parsed but ignored |
|
|
266 |
R/W |
control bit order |
|
269 |
R/W |
|
|
270 |
R/W |
|
|
271 |
R/W |
|
|
272 |
R/W |
|
|
273 |
R/W |
data i/o |
|
274 |
R/W |
|
|
277 |
R/W |
lots |
|
278 |
R/W |
data i/o |
|
279 |
R/W |
data i/o |
|
280 |
R/W |
|
|
281 |
R/W |
|
|
282 |
R/W |
|
|
283 |
R/W |
used by Group 3 2d encoder |
|
284 |
R/W |
data i/o |
|
285 |
R/W |
|
|
286 |
R/W |
|
|
286 |
R/W |
|
|
288 |
parsed but ignored |
|
|
289 |
parsed but ignored |
|
|
290 |
parsed but ignored |
|
|
291 |
parsed but ignored |
|
|
292 |
R/W |
used by Group 3 codec |
|
293 |
R/W |
|
|
296 |
R/W |
used by Group 3 2d encoder |
|
297 |
R/W |
|
|
300 |
parsed but ignored |
|
|
301 |
R/W |
|
|
305 |
R/W |
|
|
306 |
R/W |
|
|
315 |
R/W |
|
|
316 |
R/W |
|
|
317 |
R/W |
used by LZW codec |
|
318 |
R/W |
|
|
319 |
R/W |
|
|
320 |
R/W |
|
|
322 |
R/W |
data i/o |
|
323 |
R/W |
data i/o |
|
324 |
R/W |
data i/o |
|
324 |
R/W |
data i/o |
|
326 |
R/W |
|
|
327 |
R/W |
|
|
328 |
R/W |
|
|
330 |
R/W |
subimage descriptor support |
|
332 |
R/W |
|
|
333 |
R/W |
|
|
336 |
R/W |
|
|
337 |
R/W |
|
|
338 |
R/W |
lots |
|
339 |
R/W |
|
|
340 |
R/W |
|
|
341 |
R/W |
|
|
347 |
R/W |
used by JPEG codec |
|
529 |
R/W |
used by |
|
530 |
R/W |
tile/strip size calculations |
|
531 |
R/W |
|
|
532 |
R/W |
|
|
32995 |
R |
none (obsoleted by |
|
32996 |
R |
none (obsoleted by |
|
32997 |
R/W |
tile/strip calculations |
|
32998 |
R/W |
tile/strip calculations |
|
37439 |
R/W |
The Matteing
and DataType
tags have been obsoleted by the 6.0
ExtraSamples
and SampleFormat
tags.
Consult the documentation on the
ExtraSamples
tag and Associated Alpha for elaboration. Note however
that if you use Associated Alpha, you are expected to save data that is
pre-multipled by Alpha. If this means nothing to you, check out
Porter & Duff’s paper in the ‘84 SIGGRAPH proceedings: “Compositing Digital
Images”.
The ImageDepth
tag is a non-standard, but registered tag that specifies
the Z-dimension of volumetric data. The combination of ImageWidth
,
ImageLength
, and ImageDepth
,
defines a 3D volume of pixels that are
further specified by BitsPerSample
and
SamplesPerPixel
. The TileDepth
tag (also non-standard, but registered) can be used to specified a
subvolume “tiling” of a volume of data.
The Colorimetry, and CMYK tags are additions that appear in TIFF 6.0. Consult the TIFF 6.0 specification and TIFF File Format Specification.
The JPEG-related tag is specified in DRAFT TIFF Technical Note #2, which defines a revised JPEG-in-TIFF scheme (revised over the appendix that was part of the TIFF 6.0 specification).