 |
|
| |
TIFFGETFIELD(3tiff) |
LibTIFF |
TIFFGETFIELD(3tiff) |
TIFFGetField - get the value(s) of a tag in an open TIFF file
#include <tiffio.h>
#include <stdarg.h>
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 name |
Count |
Types |
Notes |
TIFFTAG_ARTIST |
1 |
const char** |
|
TIFFTAG_BADFAXLINES |
1 |
uint32_t* |
|
TIFFTAG_BITSPERSAMPLE |
1 |
uint16_t* |
|
TIFFTAG_CLEANFAXDATA |
1 |
uint16_t* |
|
TIFFTAG_COLORMAP |
3 |
const uint16_t** |
1 << BitsPerSample arrays |
TIFFTAG_COMPRESSION |
1 |
uint16_t* |
|
TIFFTAG_CONSECUTIVEBADFAXLINES |
1 |
uint32_t* |
|
TIFFTAG_COPYRIGHT |
1 |
const char** |
|
TIFFTAG_DATATYPE |
1 |
uint16_t* |
|
TIFFTAG_DATETIME |
1 |
const char** |
|
TIFFTAG_DOCUMENTNAME |
1 |
const char** |
|
TIFFTAG_DOTRANGE |
2 |
uint16_t* |
|
TIFFTAG_EXTRASAMPLES |
2 |
uint16_t*, const uint16_t** |
count, types array |
TIFFTAG_FAXFILLFUNC |
1 |
TIFFFaxFillFunc* |
G3/G4 compression pseudo-tag |
TIFFTAG_FAXMODE |
1 |
int* |
G3/G4 compression pseudo-tag |
TIFFTAG_FILLORDER |
1 |
uint16_t* |
|
TIFFTAG_GROUP3OPTIONS |
1 |
uint32_t* |
|
TIFFTAG_GROUP4OPTIONS |
1 |
uint32_t* |
|
TIFFTAG_HALFTONEHINTS |
2 |
uint16_t* |
|
TIFFTAG_HOSTCOMPUTER |
1 |
const char** |
|
TIFFTAG_ICCPROFILE |
2 |
const uint32_t*, const void** |
count, profile data‡ |
TIFFTAG_IMAGEDEPTH |
1 |
uint32_t* |
|
TIFFTAG_IMAGEDESCRIPTION |
1 |
const char** |
|
TIFFTAG_IMAGELENGTH |
1 |
uint32_t* |
|
TIFFTAG_IMAGEWIDTH |
1 |
uint32_t* |
|
TIFFTAG_INKNAMES |
1 |
const char** |
|
TIFFTAG_INKSET |
1 |
uint16_t* |
|
TIFFTAG_JPEGCOLORMODE |
1 |
int* |
JPEG pseudo-tag |
TIFFTAG_JPEGQUALITY |
1 |
int* |
JPEG pseudo-tag |
TIFFTAG_JPEGTABLES |
2 |
uint32_t*, const void** |
count, tables |
TIFFTAG_JPEGTABLESMODE |
1 |
int* |
JPEG pseudo-tag |
TIFFTAG_MAKE |
1 |
const char** |
|
TIFFTAG_MATTEING |
1 |
uint16_t* |
|
TIFFTAG_MAXSAMPLEVALUE |
1 |
uint16_t* |
|
TIFFTAG_MINSAMPLEVALUE |
1 |
uint16_t* |
|
TIFFTAG_MODEL |
1 |
const char** |
|
TIFFTAG_ORIENTATION |
1 |
uint16_t* |
|
TIFFTAG_PAGENAME |
1 |
const char** |
|
TIFFTAG_PAGENUMBER |
2 |
uint16_t* |
|
TIFFTAG_PHOTOMETRIC |
1 |
uint16_t* |
|
TIFFTAG_PHOTOSHOP |
2 |
uint32_t*, const void** |
count, data |
TIFFTAG_PLANARCONFIG |
1 |
uint16_t* |
|
TIFFTAG_PREDICTOR |
1 |
uint16_t* |
|
TIFFTAG_PRIMARYCHROMATICITIES |
1 |
const float** |
6-entry array |
TIFFTAG_REFERENCEBLACKWHITE |
1 |
const float** |
6-entry array |
TIFFTAG_RESOLUTIONUNIT |
1 |
uint16_t* |
|
TIFFTAG_RICHTIFFIPTC |
2 |
uint32_t*, const void** |
count, data |
TIFFTAG_ROWSPERSTRIP |
1 |
uint32_t* |
|
TIFFTAG_SAMPLEFORMAT |
1 |
uint16_t* |
|
TIFFTAG_SAMPLESPERPIXEL |
1 |
uint16_t* |
|
TIFFTAG_SMAXSAMPLEVALUE |
1 |
double* |
|
TIFFTAG_SMINSAMPLEVALUE |
1 |
double* |
|
TIFFTAG_SOFTWARE |
1 |
const char** |
|
TIFFTAG_STONITS |
1 |
double* |
|
TIFFTAG_STRIPBYTECOUNTS |
1 |
const uint64_t** |
|
TIFFTAG_STRIPOFFSETS |
1 |
const uint64_t** |
|
TIFFTAG_SUBFILETYPE |
1 |
uint32_t* |
|
TIFFTAG_SUBIFD |
2 |
uint16_t*, const uint64_t** |
count, offsets array |
TIFFTAG_TARGETPRINTER |
1 |
const char** |
|
TIFFTAG_THRESHHOLDING |
1 |
uint16_t* |
|
TIFFTAG_TILEBYTECOUNTS |
1 |
const uint64_t** |
|
TIFFTAG_TILEDEPTH |
1 |
uint32_t* |
|
TIFFTAG_TILELENGTH |
1 |
uint32_t* |
|
TIFFTAG_TILEOFFSETS |
1 |
const uint64_t** |
|
TIFFTAG_TILEWIDTH |
1 |
uint32_t* |
|
TIFFTAG_TRANSFERFUNCTION |
1 or 3† |
const uint16_t** |
1 << BitsPerSample entry
arrays |
TIFFTAG_WHITEPOINT |
1 |
const float** |
2-entry array |
TIFFTAG_XMLPACKET |
2 |
uint32_t*, const void** |
count, data |
TIFFTAG_XPOSITION |
1 |
float* |
|
TIFFTAG_XRESOLUTION |
1 |
float* |
|
TIFFTAG_YCBCRCOEFFICIENTS |
1 |
const float** |
3-entry array |
TIFFTAG_YCBCRPOSITIONING |
1 |
uint16_t* |
|
TIFFTAG_YCBCRSUBSAMPLING |
2 |
uint16_t* |
|
TIFFTAG_YPOSITION |
1 |
float* |
|
TIFFTAG_YRESOLUTION |
1 |
float* |
|
- †:
- If SamplesPerPixel is 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.
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);
1 is returned if the tag is defined in the current directory;
otherwise a 0 is returned.
All error messages are directed to the TIFFErrorExtR()
routine.
Unknown field, tag 0x%x:
An unknown tag was supplied.
TIFFOpen (3tiff), TIFFSetField (3tiff),
TIFFSetDirectory (3tiff), TIFFReadDirectory (3tiff),
TIFFWriteDirectory (3tiff), libtiff (3tiff)
1988-2022, LibTIFF contributors
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|