TIFFGetField¶
Synopsis¶
#include <tiffio.h>
#include <stdarg.h>
-
int TIFFGetField(TIFF *tif, ttag_t tag, ...)¶
-
int TIFFVGetField(TIFF *tif, ttag_t tag, va_list ap)¶
-
int TIFFGetFieldDefaulted(TIFF *tif, ttag_t tag, ...)¶
-
int TIFFVGetFieldDefaulted(TIFF *tif, ttag_t tag, va_list ap)¶
Description¶
TIFFGetField() returns the value of a tag or pseudo-tag associated with the
the current directory of the opened TIFF file tif. (A pseudo-tag is a
parameter that is used to control the operation of the TIFF library but whose value
is not read or written to the underlying file.) The file must have been previously
opened with TIFFOpen(). The tag is identified by tag, one of the values
defined in the include file tiff.h (see also the table below). The type and
number of values returned is dependent on the tag being requested. The programming
interface uses a variable argument list as prescribed by the stdarg.h
interface. The returned values should only be interpreted if TIFFGetField()
returns 1.
TIFFVGetField() is functionally equivalent to TIFFGetField()
except that it takes a pointer to a variable argument list. TIFFVGetField()
is useful for layering interfaces on top of the functionality provided by
TIFFGetField().
TIFFGetFieldDefaulted() and TIFFVGetFieldDefaulted() are identical
to TIFFGetField() and TIFFVGetField(), respectively, except that if
a tag is not defined in the current directory and it has a default value, then the
default value is returned.
The tags understood by libtiff the number of parameter values, and the
types for the returned values are shown below. The data types are specified as in C
and correspond to the types used to specify tag values to
TIFFSetField(). Remember that TIFFGetField() returns parameter
values, so all the listed data types are pointers to storage where values should be
returned. Consult the TIFF specification (or relevant industry specification) for
information on the meaning of each tag and their possible values.
Tag properties¶ Tag name
Count
Types
Notes
TIFFTAG_ARTIST1
const char**
TIFFTAG_BADFAXLINES1
uint32_t*
TIFFTAG_BITSPERSAMPLE1
uint16_t*
TIFFTAG_CLEANFAXDATA1
uint16_t*
TIFFTAG_COLORMAP3
const uint16_t**
1 << BitsPerSample arrays
TIFFTAG_COMPRESSION1
uint16_t*
TIFFTAG_CONSECUTIVEBADFAXLINES1
uint32_t*
TIFFTAG_COPYRIGHT1
const char**
TIFFTAG_DATATYPE1
uint16_t*
TIFFTAG_DATETIME1
const char**
TIFFTAG_DOCUMENTNAME1
const char**
TIFFTAG_DOTRANGE2
uint16_t*
TIFFTAG_EXTRASAMPLES2
uint16_t*, const uint16_t**
count, types array
TIFFTAG_FAXFILLFUNC1
TIFFFaxFillFunc*
G3/G4 compression pseudo-tag
TIFFTAG_FAXMODE1
int*
G3/G4 compression pseudo-tag
TIFFTAG_FILLORDER1
uint16_t*
TIFFTAG_GROUP3OPTIONS1
uint32_t*
TIFFTAG_GROUP4OPTIONS1
uint32_t*
TIFFTAG_HALFTONEHINTS2
uint16_t*
TIFFTAG_HOSTCOMPUTER1
const char**
TIFFTAG_ICCPROFILE2
const uint32_t*, const void**
count, profile data‡
TIFFTAG_IMAGEDEPTH1
uint32_t*
TIFFTAG_IMAGEDESCRIPTION1
const char**
TIFFTAG_IMAGELENGTH1
uint32_t*
TIFFTAG_IMAGEWIDTH1
uint32_t*
TIFFTAG_INKNAMES1
const char**
TIFFTAG_INKSET1
uint16_t*
TIFFTAG_JPEGCOLORMODE1
int*
JPEG pseudo-tag
TIFFTAG_JPEGQUALITY1
int*
JPEG pseudo-tag
TIFFTAG_JPEGTABLES2
uint32_t*, const void**
count, tables
TIFFTAG_JPEGTABLESMODE1
int*
JPEG pseudo-tag
TIFFTAG_MAKE1
const char**
TIFFTAG_MATTEING1
uint16_t*
TIFFTAG_MAXSAMPLEVALUE1
uint16_t*
TIFFTAG_MINSAMPLEVALUE1
uint16_t*
TIFFTAG_MODEL1
const char**
TIFFTAG_ORIENTATION1
uint16_t*
TIFFTAG_PAGENAME1
const char**
TIFFTAG_PAGENUMBER2
uint16_t*
TIFFTAG_PHOTOMETRIC1
uint16_t*
TIFFTAG_PHOTOSHOP2
uint32_t*, const void**
count, data
TIFFTAG_PLANARCONFIG1
uint16_t*
TIFFTAG_PREDICTOR1
uint16_t*
TIFFTAG_PRIMARYCHROMATICITIES1
const float**
6-entry array
TIFFTAG_REFERENCEBLACKWHITE1
const float**
6-entry array
TIFFTAG_RESOLUTIONUNIT1
uint16_t*
TIFFTAG_RICHTIFFIPTC2
uint32_t*, const void**
count, data
TIFFTAG_ROWSPERSTRIP1
uint32_t*
TIFFTAG_SAMPLEFORMAT1
uint16_t*
TIFFTAG_SAMPLESPERPIXEL1
uint16_t*
TIFFTAG_SMAXSAMPLEVALUE1
double*
TIFFTAG_SMINSAMPLEVALUE1
double*
TIFFTAG_SOFTWARE1
const char**
TIFFTAG_STONITS1
double*
TIFFTAG_STRIPBYTECOUNTS1
const uint64_t**
TIFFTAG_STRIPOFFSETS1
const uint64_t**
TIFFTAG_SUBFILETYPE1
uint32_t*
TIFFTAG_SUBIFD2
uint16_t*, const uint64_t**
count, offsets array
TIFFTAG_TARGETPRINTER1
const char**
TIFFTAG_THRESHHOLDING1
uint16_t*
TIFFTAG_TILEBYTECOUNTS1
const uint64_t**
TIFFTAG_TILEDEPTH1
uint32_t*
TIFFTAG_TILELENGTH1
uint32_t*
TIFFTAG_TILEOFFSETS1
const uint64_t**
TIFFTAG_TILEWIDTH1
uint32_t*
TIFFTAG_TRANSFERFUNCTION1 or 3†
const uint16_t**
1 << BitsPerSample entry arrays
TIFFTAG_WHITEPOINT1
const float**
2-entry array
TIFFTAG_XMLPACKET2
uint32_t*, const void**
count, data
TIFFTAG_XPOSITION1
float*
TIFFTAG_XRESOLUTION1
float*
TIFFTAG_YCBCRCOEFFICIENTS1
const float**
3-entry array
TIFFTAG_YCBCRPOSITIONING1
uint16_t*
TIFFTAG_YCBCRSUBSAMPLING2
uint16_t*
TIFFTAG_YPOSITION1
float*
TIFFTAG_YRESOLUTION1
float*
- †:
If
SamplesPerPixelis one, then a single array is returned; otherwise three arrays are returned.- ‡:
The contents of this field are quite complex. See “The ICC Profile Format Specification”, Annex B.3 “Embedding ICC Profiles in TIFF Files” (available at http://www.color.org) for an explanation.
Autoregistered tags¶
If you can’t find the tag in the table above that means this is an unsupported
tag and is not directly supported by the libtiff library. You will
still be able to read it’s value if you know the data type of that tag. For
example, if you want to read the LONG value from the tag 33424
and ASCII string from the tag 36867 you can use the following code:
uint32_t count;
void *data;
TIFFGetField(tiff, 33424, &count, &data);
printf("Tag %d: %d, count %d\n", 33424, *(uint32_t *)data, count);
TIFFGetField(tiff, 36867, &count, &data);
printf("Tag %d: %s, count %d\n", 36867, (char *)data, count);
Return values¶
1 is returned if the tag is defined in the current directory; otherwise a 0 is returned.
Diagnostics¶
All error messages are directed to the TIFFErrorExtR() routine.
Unknown field, tag 0x%x:
An unknown tag was supplied.
See also¶
TIFFOpen (3tiff), TIFFSetField (3tiff), TIFFSetDirectory (3tiff), TIFFReadDirectory (3tiff), TIFFWriteDirectory (3tiff), libtiff (3tiff)