Blame man/TIFFGetField.3tiff

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