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 "MM" and "II" byte orders are handled.
Both packed and separated planar configuration of samples.
Any number of samples per pixel (memory permitting).
Any image width and height (memory permitting).
Multiple subfiles can be read and written.
Editing is not supported in that related subfiles (e.g.
a reduced resolution version of an image) are not automatically
updated.
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.
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)
NewSubFileType
254
R/W
none (called SubFileType in <tiff.h>)
SubFileType
255
R/W
none (called OSubFileType in <tiff.h>)
ImageWidth
256
R/W
lots
ImageLength
257
R/W
lots
BitsPerSample
258
R/W
lots
Compression
259
R/W
to select appropriate codec
PhotometricInterpretation
262
R/W
lots
Thresholding
263
R/W
CellWidth
264
parsed but ignored
CellLength
265
parsed but ignored
FillOrder
266
R/W
control bit order
DocumentName
269
R/W
ImageDescription
270
R/W
Make
271
R/W
Model
272
R/W
StripOffsets
273
R/W
data i/o
Orientation
274
R/W
SamplesPerPixel
277
R/W
lots
RowsPerStrip
278
R/W
data i/o
StripByteCounts
279
R/W
data i/o
MinSampleValue
280
R/W
MaxSampleValue
281
R/W
XResolution
282
R/W
YResolution
283
R/W
used by Group 3 2d encoder
PlanarConfiguration
284
R/W
data i/o
PageName
285
R/W
XPosition
286
R/W
YPosition
286
R/W
FreeOffsets
288
parsed but ignored
FreeByteCounts
289
parsed but ignored
GrayResponseUnit
290
parsed but ignored
GrayResponseCurve
291
parsed but ignored
Group3Options
292
R/W
used by Group 3 codec
Group4Options
293
R/W
ResolutionUnit
296
R/W
used by Group 3 2d encoder
PageNumber
297
R/W
ColorResponseUnit
300
parsed but ignored
TransferFunction
301
R/W
Software
305
R/W
DateTime
306
R/W
Artist
315
R/W
HostComputer
316
R/W
Predictor
317
R/W
used by LZW codec
WhitePoint
318
R/W
PrimaryChromacities
319
R/W
ColorMap
320
R/W
TileWidth
322
R/W
data i/o
TileLength
323
R/W
data i/o
TileOffsets
324
R/W
data i/o
TileByteCounts
324
R/W
data i/o
BadFaxLines
326
R/W
CleanFaxData
327
R/W
ConsecutiveBadFaxLines
328
R/W
SubIFD
330
R/W
subimage descriptor support
InkSet
332
R/W
InkNames
333
R/W
DotRange
336
R/W
TargetPrinter
337
R/W
ExtraSamples
338
R/W
lots
SampleFormat
339
R/W
SMinSampleValue
340
R/W
SMaxSampleValue
341
R/W
JPEGTables
347
R/W
used by JPEG codec
YCbCrCoefficients
529
R/W
used by TIFFReadRGBAImage support
YCbCrSubsampling
530
R/W
tile/strip size calculations
YCbCrPositioning
531
R/W
ReferenceBlackWhite
532
R/W
Matteing
32995
R
none (obsoleted by ExtraSamples tag)
DataType
32996
R
none (obsoleted by SampleFormat tag)
ImageDepth
32997
R/W
tile/strip calculations
TileDepth
32998
R/W
tile/strip calculations
StoNits
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 included in the doc directory
and online.
The JPEG-related tag is specified in
TIFF Technical Note #2 which defines
a revised JPEG-in-TIFF scheme (revised over that appendix that was
part of the TIFF 6.0 specification).