Blame man/TIFFGetField.3tiff

Packit 7838c8
.\" $Id: TIFFGetField.3tiff,v 1.8 2017-06-30 17:40:02 erouault Exp $
Packit 7838c8
.\"
Packit 7838c8
.\" Copyright (c) 1988-1997 Sam Leffler
Packit 7838c8
.\" Copyright (c) 1991-1997 Silicon Graphics, Inc.
Packit 7838c8
.\"
Packit 7838c8
.\" Permission to use, copy, modify, distribute, and sell this software and 
Packit 7838c8
.\" its documentation for any purpose is hereby granted without fee, provided
Packit 7838c8
.\" that (i) the above copyright notices and this permission notice appear in
Packit 7838c8
.\" all copies of the software and related documentation, and (ii) the names of
Packit 7838c8
.\" Sam Leffler and Silicon Graphics may not be used in any advertising or
Packit 7838c8
.\" publicity relating to the software without the specific, prior written
Packit 7838c8
.\" permission of Sam Leffler and Silicon Graphics.
Packit 7838c8
.\" 
Packit 7838c8
.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
Packit 7838c8
.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
Packit 7838c8
.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
Packit 7838c8
.\" 
Packit 7838c8
.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
Packit 7838c8
.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
Packit 7838c8
.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
Packit 7838c8
.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
Packit 7838c8
.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
Packit 7838c8
.\" OF THIS SOFTWARE.
Packit 7838c8
.\"
Packit 7838c8
.if n .po 0
Packit 7838c8
.TH TIFFGetField 3TIFF "March 18, 2005" "libtiff"
Packit 7838c8
.SH NAME
Packit 7838c8
TIFFGetField, TIFFVGetField \- get the value(s) of a tag in an open
Packit 7838c8
.SM TIFF
Packit 7838c8
file
Packit 7838c8
.SH SYNOPSIS
Packit 7838c8
.B "#include <tiffio.h>"
Packit 7838c8
.sp
Packit 7838c8
.BI "int TIFFGetField(TIFF *" tif ", ttag_t " tag ", " ... ")"
Packit 7838c8
.sp
Packit 7838c8
.B "#include <stdarg.h>"
Packit 7838c8
.sp
Packit 7838c8
.BI "int TIFFVGetField(TIFF *" tif ", ttag_t " tag ", va_list " ap ")"
Packit 7838c8
.br
Packit 7838c8
.BI "int TIFFGetFieldDefaulted(TIFF *" tif ", ttag_t " tag ", " ... ")"
Packit 7838c8
.br
Packit 7838c8
.BI "int TIFFVGetFieldDefaulted(TIFF *" tif ", ttag_t " tag ", va_list " ap ")"
Packit 7838c8
.SH DESCRIPTION
Packit 7838c8
.IR TIFFGetField
Packit 7838c8
returns the value of a tag or pseudo-tag associated with the the current
Packit 7838c8
directory of the opened
Packit 7838c8
.SM TIFF
Packit 7838c8
file
Packit 7838c8
.IR tif .
Packit 7838c8
(A
Packit 7838c8
.I pseudo-tag 
Packit 7838c8
is a parameter that is used to control the operation of the
Packit 7838c8
.SM TIFF
Packit 7838c8
library but whose value is not read or written to the underlying file.) The
Packit 7838c8
file must have been previously opened with
Packit 7838c8
.IR TIFFOpen (3TIFF).
Packit 7838c8
The tag is identified by
Packit 7838c8
.IR tag ,
Packit 7838c8
one of the values defined in the include file
Packit 7838c8
.B tiff.h
Packit 7838c8
(see also the table below). The type and number of values returned is
Packit 7838c8
dependent on the tag being requested. The programming interface uses a
Packit 7838c8
variable argument list as prescribed by the
Packit 7838c8
.IR stdarg (3)
Packit 7838c8
interface. The returned values should only be interpreted if
Packit 7838c8
.IR TIFFGetField
Packit 7838c8
returns 1.
Packit 7838c8
.PP
Packit 7838c8
.IR TIFFVGetField
Packit 7838c8
is functionally equivalent to
Packit 7838c8
.IR TIFFGetField
Packit 7838c8
except that it takes a pointer to a variable argument list.
Packit 7838c8
.I TIFFVGetField
Packit 7838c8
is useful for layering interfaces on top of the functionality provided by
Packit 7838c8
.IR TIFFGetField .
Packit 7838c8
.PP
Packit 7838c8
.IR TIFFGetFieldDefaulted
Packit 7838c8
and
Packit 7838c8
.IR TIFFVGetFieldDefaulted
Packit 7838c8
are identical to 
Packit 7838c8
.IR TIFFGetField
Packit 7838c8
and
Packit 7838c8
.IR TIFFVGetField ,
Packit 7838c8
except that if a tag is not defined in the current directory and it has a
Packit 7838c8
default value, then the default value is returned.
Packit 7838c8
.PP
Packit 7838c8
The tags understood by
Packit 7838c8
.IR libtiff(3TIFF),
Packit 7838c8
the number of parameter values, and the types for the returned values are
Packit 7838c8
shown below. The data types are specified as in C and correspond to the types
Packit 7838c8
used to specify tag values to
Packit 7838c8
.IR TIFFSetField (3TIFF).
Packit 7838c8
Remember that
Packit 7838c8
.IR TIFFGetField
Packit 7838c8
returns parameter values, so all the listed data types are pointers to storage
Packit 7838c8
where values should be returned.
Packit 7838c8
Consult the
Packit 7838c8
.SM TIFF
Packit 7838c8
specification (or relevant industry specification) for information on the
Packit 7838c8
meaning of each tag and their possible values.
Packit 7838c8
.PP
Packit 7838c8
.nf
Packit 7838c8
.ta \w'TIFFTAG_CONSECUTIVEBADFAXLINES'u+2n +\w'Count'u+2n +\w'TIFFFaxFillFunc*'u+2n
Packit 7838c8
\fITag Name\fP	\fICount\fP	\fITypes\fP	\fINotes\fP
Packit 7838c8
.sp 5p
Packit 7838c8
TIFFTAG_ARTIST	1	char**
Packit 7838c8
TIFFTAG_BADFAXLINES	1	uint32*
Packit 7838c8
TIFFTAG_BITSPERSAMPLE	1	uint16*
Packit 7838c8
TIFFTAG_CLEANFAXDATA	1	uint16*
Packit 7838c8
TIFFTAG_COLORMAP	3	uint16**	1<
Packit 7838c8
TIFFTAG_COMPRESSION	1	uint16*
Packit 7838c8
TIFFTAG_CONSECUTIVEBADFAXLINES	1	uint32*
Packit 7838c8
TIFFTAG_COPYRIGHT	1	char**
Packit 7838c8
TIFFTAG_DATATYPE	1	uint16*
Packit 7838c8
TIFFTAG_DATETIME	1	char**
Packit 7838c8
TIFFTAG_DOCUMENTNAME	1	char**
Packit 7838c8
TIFFTAG_DOTRANGE	2	uint16*
Packit 7838c8
TIFFTAG_EXTRASAMPLES	2	uint16*,uint16**	count & types array
Packit 7838c8
TIFFTAG_FAXFILLFUNC	1	TIFFFaxFillFunc*	G3/G4 compression pseudo-tag
Packit 7838c8
TIFFTAG_FAXMODE	1	int*	G3/G4 compression pseudo-tag
Packit 7838c8
TIFFTAG_FILLORDER	1	uint16*
Packit 7838c8
TIFFTAG_GROUP3OPTIONS	1	uint32*
Packit 7838c8
TIFFTAG_GROUP4OPTIONS	1	uint32*
Packit 7838c8
TIFFTAG_HALFTONEHINTS	2	uint16*
Packit 7838c8
TIFFTAG_HOSTCOMPUTER	1	char**
Packit 7838c8
TIFFTAG_ICCPROFILE	2	uint32*,void**	count, profile data
Packit 7838c8
TIFFTAG_IMAGEDEPTH	1	uint32*
Packit 7838c8
TIFFTAG_IMAGEDESCRIPTION	1	char**
Packit 7838c8
TIFFTAG_IMAGELENGTH	1	uint32*
Packit 7838c8
TIFFTAG_IMAGEWIDTH	1	uint32*
Packit 7838c8
TIFFTAG_INKNAMES	1	char**
Packit 7838c8
TIFFTAG_INKSET	1	uint16*
Packit 7838c8
TIFFTAG_JPEGCOLORMODE	1	int*	JPEG pseudo-tag
Packit 7838c8
TIFFTAG_JPEGQUALITY	1	int*	JPEG pseudo-tag
Packit 7838c8
TIFFTAG_JPEGTABLES	2	uint32*,void**	count & tables
Packit 7838c8
TIFFTAG_JPEGTABLESMODE	1	int*	JPEG pseudo-tag
Packit 7838c8
TIFFTAG_MAKE	1	char**
Packit 7838c8
TIFFTAG_MATTEING	1	uint16*
Packit 7838c8
TIFFTAG_MAXSAMPLEVALUE	1	uint16*
Packit 7838c8
TIFFTAG_MINSAMPLEVALUE	1	uint16*
Packit 7838c8
TIFFTAG_MODEL	1	char**
Packit 7838c8
TIFFTAG_ORIENTATION	1	uint16*
Packit 7838c8
TIFFTAG_PAGENAME	1	char**
Packit 7838c8
TIFFTAG_PAGENUMBER	2	uint16*
Packit 7838c8
TIFFTAG_PHOTOMETRIC	1	uint16*
Packit 7838c8
TIFFTAG_PHOTOSHOP	2	uint32*,void**	count, data
Packit 7838c8
TIFFTAG_PLANARCONFIG	1	uint16*
Packit 7838c8
TIFFTAG_PREDICTOR	1	uint16*
Packit 7838c8
TIFFTAG_PRIMARYCHROMATICITIES	1	float**	6-entry array
Packit 7838c8
TIFFTAG_REFERENCEBLACKWHITE	1	float**	6-entry array
Packit 7838c8
TIFFTAG_RESOLUTIONUNIT	1	uint16*
Packit 7838c8
TIFFTAG_RICHTIFFIPTC	2	uint32*,void**	count, data
Packit 7838c8
TIFFTAG_ROWSPERSTRIP	1	uint32*
Packit 7838c8
TIFFTAG_SAMPLEFORMAT	1	uint16*
Packit 7838c8
TIFFTAG_SAMPLESPERPIXEL	1	uint16*
Packit 7838c8
TIFFTAG_SMAXSAMPLEVALUE	1	double*
Packit 7838c8
TIFFTAG_SMINSAMPLEVALUE	1	double*
Packit 7838c8
TIFFTAG_SOFTWARE	1	char**
Packit 7838c8
TIFFTAG_STONITS	1	double**
Packit 7838c8
TIFFTAG_STRIPBYTECOUNTS	1	uint32**
Packit 7838c8
TIFFTAG_STRIPOFFSETS	1	uint32**
Packit 7838c8
TIFFTAG_SUBFILETYPE	1	uint32*
Packit 7838c8
TIFFTAG_SUBIFD	2	uint16*,uint64**	count & offsets array
Packit 7838c8
TIFFTAG_TARGETPRINTER	1	char**
Packit 7838c8
TIFFTAG_THRESHHOLDING	1	uint16*
Packit 7838c8
TIFFTAG_TILEBYTECOUNTS	1	uint32**
Packit 7838c8
TIFFTAG_TILEDEPTH	1	uint32*
Packit 7838c8
TIFFTAG_TILELENGTH	1	uint32*
Packit 7838c8
TIFFTAG_TILEOFFSETS	1	uint32**
Packit 7838c8
TIFFTAG_TILEWIDTH	1	uint32*
Packit 7838c8
TIFFTAG_TRANSFERFUNCTION	1 or 3\(dg	uint16**1<
Packit 7838c8
TIFFTAG_WHITEPOINT	1	float**	2-entry array
Packit 7838c8
TIFFTAG_XMLPACKET	2	uint32*,void**	count, data
Packit 7838c8
TIFFTAG_XPOSITION	1	float*
Packit 7838c8
TIFFTAG_XRESOLUTION	1	float*
Packit 7838c8
TIFFTAG_YCBCRCOEFFICIENTS	1	float**	3-entry array
Packit 7838c8
TIFFTAG_YCBCRPOSITIONING	1	uint16*
Packit 7838c8
TIFFTAG_YCBCRSUBSAMPLING	2	uint16*
Packit 7838c8
TIFFTAG_YPOSITION	1	float*
Packit 7838c8
TIFFTAG_YRESOLUTION	1	float*\(dd
Packit 7838c8
.fi
Packit 7838c8
\(dg If
Packit 7838c8
.I SamplesPerPixel
Packit 7838c8
is one, then a single array is returned; otherwise three arrays are returned.
Packit 7838c8
.fi
Packit 7838c8
\(dd The contents of this field are quite complex.  See 
Packit 7838c8
.IR "The ICC Profile Format Specification" ,
Packit 7838c8
Annex B.3 "Embedding ICC Profiles in TIFF Files" (available at
Packit 7838c8
http://www.color.org) for an explanation.
Packit 7838c8
.SH AUTOREGISTERED TAGS
Packit 7838c8
If you can't find the tag in the table above that means this is an unsupported
Packit 7838c8
tag and is not directly supported by
Packit 7838c8
.BR libtiff(3TIFF)
Packit 7838c8
library. You will still be able to read it's value if you know the data type of
Packit 7838c8
that tag. For example, if you want to read the LONG value from the tag 33424
Packit 7838c8
and ASCII string from the tag 36867 you can use the following code:
Packit 7838c8
.PP
Packit 7838c8
.RS
Packit 7838c8
.nf
Packit 7838c8
uint32  count;
Packit 7838c8
void    *data;
Packit 7838c8
Packit 7838c8
TIFFGetField(tiff, 33424, &count, &data);
Packit 7838c8
printf("Tag %d: %d, count %d\n", 33424, *(uint32 *)data, count);
Packit 7838c8
TIFFGetField(tiff, 36867, &count, &data);
Packit 7838c8
printf("Tag %d: %s, count %d\n", 36867, (char *)data, count);
Packit 7838c8
.fi
Packit 7838c8
.RE
Packit 7838c8
.PP
Packit 7838c8
.SH RETURN VALUES
Packit 7838c8
1 is returned if the tag is defined in the current directory; otherwise a 0 is
Packit 7838c8
returned.
Packit 7838c8
.SH DIAGNOSTICS
Packit 7838c8
All error messages are directed to the
Packit 7838c8
.BR TIFFError (3TIFF)
Packit 7838c8
routine.
Packit 7838c8
.PP
Packit 7838c8
.BR "Unknown field, tag 0x%x" .
Packit 7838c8
An unknown tag was supplied.
Packit 7838c8
.SH "SEE ALSO"
Packit 7838c8
.BR TIFFOpen (3TIFF),
Packit 7838c8
.BR TIFFSetField (3TIFF),
Packit 7838c8
.BR TIFFSetDirectory (3TIFF),
Packit 7838c8
.BR TIFFReadDirectory (3TIFF),
Packit 7838c8
.BR TIFFWriteDirectory (3TIFF)
Packit 7838c8
.BR libtiff (3TIFF),
Packit 7838c8
.PP
Packit 7838c8
Libtiff library home page:
Packit 7838c8
.BR http://www.simplesystems.org/libtiff/