libtiff/html/man/libtiff.3tiff.html
Bob Friesenhahn c3402403ea * html/man/Makefile.am (htmldoc): Fix htmldoc rule so that it can
be used if build directory is not the same as source directory.
* man/{TIFFGetField.3tiff, man/TIFFSetField.3tiff}: Documented
TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, and TIFFTAG_XMLPACKET,
and re-sorted tag names in alphabetical order.
2006-01-02 23:50:44 +00:00

3015 lines
58 KiB
HTML

<!-- Creator : groff version 1.19.2 -->
<!-- CreationDate: Mon Jan 2 17:41:34 2006 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
p { margin-top: 0; margin-bottom: 0; }
pre { margin-top: 0; margin-bottom: 0; }
table { margin-top: 0; margin-bottom: 0; }
</style>
<title>INTRO</title>
</head>
<body>
<h1 align=center>INTRO</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DATA TYPES">DATA TYPES</a><br>
<a href="#LIST OF ROUTINES">LIST OF ROUTINES</a><br>
<a href="#TAG USAGE">TAG USAGE</a><br>
<a href="#PSEUDO TAGS">PSEUDO TAGS</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#BUGS">BUGS</a><br>
<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<p style="margin-left:11%; margin-top: 1em">libtiff &minus;
introduction to <i>libtiff</i>, a library for reading and
writing <small>TIFF</small> files</p>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>
<p style="margin-left:11%; margin-top: 1em">cc file.c
<b>-ltiff</b></p>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<p style="margin-left:11%; margin-top: 1em"><i>libtiff</i>
is a library for reading and writing data files encoded with
the <i>Tag Image File</i> format, Revision 6.0 (or revision
5.0 or revision 4.0). This file format is suitable for
archiving multi-color and monochromatic image data.</p>
<p style="margin-left:11%; margin-top: 1em">The library
supports several compression algorithms, as indicated by the
<i>Compression</i> field, including: no compression (1),
<small>CCITT</small> 1D Huffman compression (2),
<small>CCITT</small> Group 3 Facsimile compression (3),
<small>CCITT</small> Group 4 Facsimile compression (4),
Lempel-Ziv &amp; Welch compression (5), baseline JPEG
compression (7), word-aligned 1D Huffman compression
(32771), and PackBits compression (32773). In addition,
several nonstandard compression algorithms are supported:
the 4-bit compression algorithm used by the
<i>ThunderScan</i> program (32809) (decompression only),
NeXT&rsquo;s 2-bit compression algorithm (32766)
(decompression only), an experimental LZ-style algorithm
known as Deflate (32946), and an experimental CIE LogLuv
compression scheme designed for images with high dynamic
range (32845 for LogL and 32845 for LogLuv). Directory
information may be in either little- or big-endian byte
order&minus;byte swapping is automatically done by the
library. Data bit ordering may be either Most Significant
Bit ( <small>MSB</small> ) to Least Significant Bit (
<small>LSB</small> ) or <small>LSB</small> to
<small>MSB.</small> Finally, the library does not support
files in which the <i>BitsPerSample</i>, <i>Compression</i>,
<i>MinSampleValue</i>, or <i>MaxSampleValue</i> fields are
defined differently on a per-sample basis (in Rev. 6.0 the
<i>Compression</i> tag is not defined on a per-sample basis,
so this is immaterial).</p>
<a name="DATA TYPES"></a>
<h2>DATA TYPES</h2>
<p style="margin-left:11%; margin-top: 1em">The library
makes extensive use of C typedefs to promote portability.
Two sets of typedefs are used, one for communication with
clients of the library and one for internal data structures
and parsing of the <small>TIFF</small> format. The following
typedefs are exposed to users either through function
definitions or through parameters passed through the varargs
interfaces.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef unsigned short uint16;</p></td>
<td width="45%">
<p valign="top">16-bit unsigned integer</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef unsigned &lt;<i>thing</i>&gt;
uint32;</p> </td>
<td width="45%">
<p valign="top">32-bit unsigned integer</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef unsigned int ttag_t;</p></td>
<td width="45%">
<p valign="top">directory tag</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef uint16 tdir_t;</p></td>
<td width="45%">
<p valign="top">directory index</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef uint16 tsample_t;</p></td>
<td width="45%">
<p valign="top">sample number</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef uint32 tstrip_t;</p></td>
<td width="45%">
<p valign="top">strip number</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef uint32 ttile_t;</p></td>
<td width="45%">
<p valign="top">tile number</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef int32 tsize_t;</p></td>
<td width="45%">
<p valign="top">i/o size in bytes</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef void* tdata_t;</p></td>
<td width="45%">
<p valign="top">image data ref</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef void* thandle_t;</p></td>
<td width="45%">
<p valign="top">client data handle</p></td>
<tr valign="top" align="left">
<td width="18%"></td>
<td width="37%">
<p valign="top">typedef int32 toff_t;</p></td>
<td width="45%">
<p valign="top">file offset</p></td>
</table>
<p style="margin-left:11%;">Note that <i>tstrip_t</i>,
<i>ttile_t</i>, and <i>tsize_t</i> are constrained to be no
more than 32-bit quantities by 32-bit fields they are stored
in in the <small>TIFF</small> image. Likewise
<i>tsample_t</i> is limited by the 16-bit field used to
store the <i>SamplesPerPixel</i> tag. <i>tdir_t</i>
constrains the maximum number of <small>IFDs</small> that
may appear in an image and may be an arbitrary size (w/o
penalty). <i>ttag_t</i> must be either int, unsigned int,
pointer, or double because the library uses a varargs
interface and <small>ANSI C</small> restricts the type of
the parameter before an ellipsis to be a promoted type.
<i>toff_t</i> is defined as int32 because TIFF file offsets
are (unsigned) 32-bit quantities. A signed value is used
because some interfaces return &minus;1 on error. Finally,
note that user-specified data references are passed as
opaque handles and only cast at the lowest layers where
their type is presumed.</p>
<a name="LIST OF ROUTINES"></a>
<h2>LIST OF ROUTINES</h2>
<p style="margin-left:11%; margin-top: 1em">The following
routines are part of the library. Consult specific manual
pages for details on their operation; on most systems doing
&lsquo;&lsquo;man function-name&rsquo;&rsquo; will work.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top"><i>Name</i></p></td>
<td width="62%">
<p valign="top"><i>Description</i></p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCheckpointDirectory</p></td>
<td width="62%">
<p valign="top">writes the current state of the
directory</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCheckTile</p></td>
<td width="62%">
<p valign="top">very x,y,z,sample is within image</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCIELabToRGBInit</p></td>
<td width="62%">
<p valign="top">initialize CIE L*a*b* 1976 to RGB
conversion state</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCIELabToXYZ</p></td>
<td width="62%">
<p valign="top">perform CIE L*a*b* 1976 to CIE XYZ
conversion</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFClientOpen</p></td>
<td width="62%">
<p valign="top">open a file for reading or writing</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFClose</p></td>
<td width="62%">
<p valign="top">close an open file</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFComputeStrip</p></td>
<td width="62%">
<p valign="top">return strip containing y,sample</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFComputeTile</p></td>
<td width="62%">
<p valign="top">return tile containing x,y,z,sample</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCurrentDirectory</p></td>
<td width="62%">
<p valign="top">return index of current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCurrentRow</p></td>
<td width="62%">
<p valign="top">return index of current scanline</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCurrentStrip</p></td>
<td width="62%">
<p valign="top">return index of current strip</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFCurrentTile</p></td>
<td width="62%">
<p valign="top">return index of current tile</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFDataWidth</p></td>
<td width="62%">
<p valign="top">return the size of TIFF data types</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFError</p></td>
<td width="62%">
<p valign="top">library error handler</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFdOpen</p></td>
<td width="62%">
<p valign="top">open a file for reading or writing</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFileName</p></td>
<td width="62%">
<p valign="top">return name of open file</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFileno</p></td>
<td width="62%">
<p valign="top">return open file descriptor</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFindCODEC</p></td>
<td width="62%">
<p valign="top">find standard codec for the specific
scheme</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFlush</p></td>
<td width="62%">
<p valign="top">flush all pending writes</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFFlushData</p></td>
<td width="62%">
<p valign="top">flush pending data writes</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFGetBitRevTable</p></td>
<td width="62%">
<p valign="top">return bit reversal table</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFGetField</p></td>
<td width="62%">
<p valign="top">return tag value in current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFGetFieldDefaulted</p></td>
<td width="62%">
<p valign="top">return tag value in current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFGetMode</p></td>
<td width="62%">
<p valign="top">return open file mode</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFGetVersion</p></td>
<td width="62%">
<p valign="top">return library version string</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFIsCODECConfigured</p></td>
<td width="62%">
<p valign="top">check, whether we have working codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFIsMSB2LSB</p></td>
<td width="62%">
<p valign="top">return true if image data is being
returned</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%"></td>
<td width="62%">
<p valign="top">with bit 0 as the most significant bit</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFIsTiled</p></td>
<td width="62%">
<p valign="top">return true if image data is tiled</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFIsByteSwapped</p></td>
<td width="62%">
<p valign="top">return true if image data is
byte-swapped</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFNumberOfStrips</p></td>
<td width="62%">
<p valign="top">return number of strips in an image</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFNumberOfTiles</p></td>
<td width="62%">
<p valign="top">return number of tiles in an image</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFOpen</p></td>
<td width="62%">
<p valign="top">open a file for reading or writing</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFPrintDirectory</p></td>
<td width="62%">
<p valign="top">print description of the current
directory</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadBufferSetup</p></td>
<td width="62%">
<p valign="top">specify i/o buffer for reading</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadDirectory</p></td>
<td width="62%">
<p valign="top">read the next directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadEncodedStrip</p></td>
<td width="62%">
<p valign="top">read and decode a strip of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadEncodedTile</p></td>
<td width="62%">
<p valign="top">read and decode a tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadRawStrip</p></td>
<td width="62%">
<p valign="top">read a raw strip of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadRawTile</p></td>
<td width="62%">
<p valign="top">read a raw tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadRGBAImage</p></td>
<td width="62%">
<p valign="top">read an image into a fixed format
raster</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadScanline</p></td>
<td width="62%">
<p valign="top">read and decode a row of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReadTile</p></td>
<td width="62%">
<p valign="top">read and decode a tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRegisterCODEC</p></td>
<td width="62%">
<p valign="top">override standard codec for the specific
scheme</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFReverseBits</p></td>
<td width="62%">
<p valign="top">reverse bits in an array of bytes</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRGBAImageBegin</p></td>
<td width="62%">
<p valign="top">setup decoder state for
TIFFRGBAImageGet</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRGBAImageEnd</p></td>
<td width="62%">
<p valign="top">release TIFFRGBAImage decoder state</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRGBAImageGet</p></td>
<td width="62%">
<p valign="top">read and decode an image</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRGBAImageOK</p></td>
<td width="62%">
<p valign="top">is image readable by TIFFRGBAImageGet</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFScanlineSize</p></td>
<td width="62%">
<p valign="top">return size of a scanline</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSetDirectory</p></td>
<td width="62%">
<p valign="top">set the current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSetSubDirectory</p></td>
<td width="62%">
<p valign="top">set the current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSetErrorHandler</p></td>
<td width="62%">
<p valign="top">set error handler function</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSetField</p></td>
<td width="62%">
<p valign="top">set a tag&rsquo;s value in the current
directory</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSetWarningHandler</p></td>
<td width="62%">
<p valign="top">set warning handler function</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFStripSize</p></td>
<td width="62%">
<p valign="top">returns size of a strip</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFRawStripSize</p></td>
<td width="62%">
<p valign="top">returns the number of bytes in a raw
strip</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSwabShort</p></td>
<td width="62%">
<p valign="top">swap bytes of short</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSwabLong</p></td>
<td width="62%">
<p valign="top">swap bytes of long</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSwabArrayOfShort</p></td>
<td width="62%">
<p valign="top">swap bytes of an array of shorts</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFSwabArrayOfLong</p></td>
<td width="62%">
<p valign="top">swap bytes of an array of longs</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFTileRowSize</p></td>
<td width="62%">
<p valign="top">return size of a row in a tile</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFTileSize</p></td>
<td width="62%">
<p valign="top">return size of a tile</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFUnRegisterCODEC</p></td>
<td width="62%">
<p valign="top">unregisters the codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFVGetField</p></td>
<td width="62%">
<p valign="top">return tag value in current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFVGetFieldDefaulted</p></td>
<td width="62%">
<p valign="top">return tag value in current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFVSetField</p></td>
<td width="62%">
<p valign="top">set a tag&rsquo;s value in the current
directory</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFVStripSize</p></td>
<td width="62%">
<p valign="top">returns the number of bytes in a strip</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWarning</p></td>
<td width="62%">
<p valign="top">library warning handler</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteDirectory</p></td>
<td width="62%">
<p valign="top">write the current directory</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteEncodedStrip</p></td>
<td width="62%">
<p valign="top">compress and write a strip of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteEncodedTile</p></td>
<td width="62%">
<p valign="top">compress and write a tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteRawStrip</p></td>
<td width="62%">
<p valign="top">write a raw strip of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteRawTile</p></td>
<td width="62%">
<p valign="top">write a raw tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteScanline</p></td>
<td width="62%">
<p valign="top">write a scanline of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFWriteTile</p></td>
<td width="62%">
<p valign="top">compress and write a tile of data</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFXYZToRGB</p></td>
<td width="62%">
<p valign="top">perform CIE XYZ to RGB conversion</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFYCbCrToRGBInit</p></td>
<td width="62%">
<p valign="top">initialize YCbCr to RGB conversion
state</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">TIFFYCbCrtoRGB</p></td>
<td width="62%">
<p valign="top">perform YCbCr to RGB conversion</p></td>
</table>
<p style="margin-left:11%; margin-top: 1em">Auxiliary
functions:</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFfree</p></td>
<td width="62%">
<p valign="top">free memory buffer</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFmalloc</p></td>
<td width="62%">
<p valign="top">dynamically allocate memory buffer</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFmemcmp</p></td>
<td width="62%">
<p valign="top">compare contents of the memory buffers</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFmemcpy</p></td>
<td width="62%">
<p valign="top">copy contents of the one buffer to
another</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFmemset</p></td>
<td width="62%">
<p valign="top">fill memory buffer with a constant byte</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="27%">
<p valign="top">_TIFFrealloc</p></td>
<td width="62%">
<p valign="top">dynamically reallocate memory buffer</p></td>
</table>
<a name="TAG USAGE"></a>
<h2>TAG USAGE</h2>
<p style="margin-left:11%; margin-top: 1em">The table below
lists the <small>TIFF</small> tags that are recognized and
handled by the library. If no use is indicated in the table,
then the library reads and writes the tag, but does not use
it internally. Note that some tags are meaningful only when
a particular compression scheme is being used; e.g.
<i>Group3Options</i> is only useful if <i>Compression</i> is
set to <small>CCITT</small> Group 3 encoding. Tags of this
sort are considered <i>codec-specific</i> tags and the
library does not recognize them except when the
<i>Compression</i> tag has been previously set to the
relevant compression scheme.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top"><i>Tag Name</i></p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top"><i>Value</i></p></td>
<td width="45%">
<p valign="top"><i>R/W</i></p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top"><i>Library Use/Notes</i></p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Artist</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">315</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">BadFaxLines</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">326</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">BitsPerSample</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">258</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">lots</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">CellLength</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">265</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">CellWidth</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">264</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">CleanFaxData</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">327</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ColorMap</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">320</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ColorResponseUnit</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">300</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Compression</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">259</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">choosing codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ConsecutiveBadFaxLines</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">328</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
</table>
<p style="margin-left:11%;">Copyright 33432 R/W</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">DataType</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">32996</p></td>
<td width="45%">
<p valign="top">R</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">obsoleted by SampleFormat tag</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">DateTime</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">306</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">DocumentName</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">269</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">DotRange</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">336</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ExtraSamples</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">338</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">lots</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FaxRecvParams</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">34908</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FaxSubAddress</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">34909</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FaxRecvTime</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">34910</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FillOrder</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">266</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">control bit order</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FreeByteCounts</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">289</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">FreeOffsets</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">288</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">GrayResponseCurve</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">291</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">GrayResponseUnit</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">290</p></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">parsed but ignored</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Group3Options</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">292</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by Group 3 codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Group4Options</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">293</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">HostComputer</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">316</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ImageDepth</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">32997</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">tile/strip calculations</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ImageDescription</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">270</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ImageLength</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">257</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">lots</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ImageWidth</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">256</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">lots</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">InkNames</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">333</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">InkSet</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">332</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">JPEGTables</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">347</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by JPEG codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Make</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">271</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Matteing</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">32995</p></td>
<td width="45%">
<p valign="top">R</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">obsoleted by ExtraSamples tag</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">MaxSampleValue</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">281</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">MinSampleValue</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">280</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Model</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">272</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">NewSubFileType</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">254</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">called SubFileType in spec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">NumberOfInks</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">334</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Orientation</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">274</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">PageName</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">285</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">PageNumber</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">297</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">PhotometricInterpretation</p></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">262</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">R/Wused by Group 3 and JPEG codecs</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">PlanarConfiguration</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">284</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Predictor</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">317</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by LZW and Deflate codecs</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">PrimaryChromacities</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">319</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ReferenceBlackWhite</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">532</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">ResolutionUnit</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">296</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by Group 3 codec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">RowsPerStrip</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">278</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">SampleFormat</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">339</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">SamplesPerPixel</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">277</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">lots</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">SMinSampleValue</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">340</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">SMaxSampleValue</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">341</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Software</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">305</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">StoNits</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">37439</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">StripByteCounts</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">279</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">StripOffsets</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">273</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">SubFileType</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">255</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">called OSubFileType in spec</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TargetPrinter</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">337</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">Thresholding</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">263</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TileByteCounts</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">324</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TileDepth</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">32998</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">tile/strip calculations</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TileLength</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">323</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TileOffsets</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">324</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TileWidth</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">322</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">data i/o</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TransferFunction</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">301</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">WhitePoint</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">318</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">XPosition</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">286</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">XResolution</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">282</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">YCbCrCoefficients</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">529</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by TIFFRGBAImage support</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">YCbCrPositioning</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">531</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">tile/strip size calulcations</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">YCbCrSubsampling</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">530</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">YPosition</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">286</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">YResolution</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">283</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">used by Group 3 codec</p></td>
</table>
<a name="PSEUDO TAGS"></a>
<h2>PSEUDO TAGS</h2>
<p style="margin-left:11%; margin-top: 1em">In addition to
the normal <small>TIFF</small> tags the library supports a
collection of tags whose values lie in a range outside the
valid range of <small>TIFF</small> tags. These tags are
termed <i>pseud-tags</i> and are used to control various
codec-specific functions within the library. The table below
summarizes the defined pseudo-tags.</p>
<table width="100%" border=0 rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top"><i>Tag Name</i></p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top"><i>Codec</i></p></td>
<td width="45%">
<p valign="top"><i>R/W</i></p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top"><i>Library Use/Notes</i></p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_FAXMODE</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">G3</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">general codec operation</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_FAXFILLFUNC</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">G3/G4</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">bitmap fill function</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_JPEGQUALITY</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">JPEG</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">compression quality control</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_JPEGCOLORMODE</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">JPEG</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">control colorspace conversions</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_JPEGTABLESMODE</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">JPEG</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">control contents of <i>JPEGTables</i>
tag</p> </td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_ZIPQUALITY</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">Deflate</p></td>
<td width="45%">
<p valign="top">R/Wcompression quality level</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_PIXARLOGDATAFMT</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">PixarLog</p></td>
<td width="45%">
<p valign="top">R/Wuser data format</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_PIXARLOGQUALITY</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">PixarLog</p></td>
<td width="45%">
<p valign="top">R/Wcompression quality level</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%">
<p valign="top">TIFFTAG_SGILOGDATAFMT</p></td>
<td width="11%"></td>
<td width="7%">
<p valign="top">SGILog</p></td>
<td width="45%">
<p valign="top">R/W</p></td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="26%"></td>
<td width="11%"></td>
<td width="7%"></td>
<td width="45%">
<p valign="top">user data format</p></td>
</table>
<p style="margin-left:11%;"><b>TIFFTAG_FAXMODE</b></p>
<p style="margin-left:22%;">Control the operation of the
Group 3 codec. Possible values (independent bits that can be
combined by or&rsquo;ing them together) are: FAXMODE_CLASSIC
(enable old-style format in which the <small>RTC</small> is
written at the end of the last strip), FAXMODE_NORTC
(opposite of FAXMODE_CLASSIC; also called FAXMODE_CLASSF),
FAXMODE_NOEOL (do not write <small>EOL</small> codes at the
start of each row of data), FAXMODE_BYTEALIGN (align each
encoded row to an 8-bit boundary), FAXMODE_WORDALIGN (align
each encoded row to an 16-bit boundary), The default value
is dependent on the compression scheme; this pseudo-tag is
used by the various G3 and G4 codecs to share code.</p>
<p style="margin-left:11%;"><b>TIFFTAG_FAXFILLFUNC</b></p>
<p style="margin-left:22%;">Control the function used to
convert arrays of black and white runs to packed bit arrays.
This hook can be used to image decoded scanlines in
multi-bit depth rasters (e.g. for display in colormap mode)
or for other purposes. The default value is a pointer to a
builtin function that images packed bilevel data.</p>
<p style="margin-left:11%;"><b>TIFFTAG_IPTCNEWSPHOTO</b></p>
<p style="margin-left:22%;">Tag contaings image metadata
per the IPTC newsphoto spec: Headline, captioning, credit,
etc... Used by most wire services.</p>
<p style="margin-left:11%;"><b>TIFFTAG_PHOTOSHOP</b></p>
<p style="margin-left:22%;">Tag contains Photoshop
captioning information and metadata. Photoshop uses in
parallel and redundantly alongside IPTCNEWSPHOTO
information.</p>
<p style="margin-left:11%;"><b>TIFFTAG_JPEGQUALITY</b></p>
<p style="margin-left:22%;">Control the compression quality
level used in the baseline algorithm. Note that quality
levels are in the range 0-100 with a default value of
75.</p>
<p style="margin-left:11%;"><b>TIFFTAG_JPEGCOLORMODE</b></p>
<p style="margin-left:22%;">Control whether or not
conversion is done between RGB and YCbCr colorspaces.
Possible values are: JPEGCOLORMODE_RAW (do not convert), and
JPEGCOLORMODE_RGB (convert to/from RGB) The default value is
JPEGCOLORMODE_RAW.</p>
<p style="margin-left:11%;"><b>TIFFTAG_JPEGTABLESMODE</b></p>
<p style="margin-left:22%;">Control the information written
in the <i>JPEGTables</i> tag. Possible values (independent
bits that can be combined by or&rsquo;ing them together)
are: JPEGTABLESMODE_QUANT (include quantization tables), and
JPEGTABLESMODE_HUFF (include Huffman encoding tables). The
default value is
JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF.</p>
<p style="margin-left:11%;"><b>TIFFTAG_ZIPQUALITY</b></p>
<p style="margin-left:22%;">Control the compression
technique used by the Deflate codec. Quality levels are in
the range 1-9 with larger numbers yielding better
compression at the cost of more computation. The default
quality level is 6 which yields a good time-space
tradeoff.</p>
<p style="margin-left:11%;"><b>TIFFTAG_PIXARLOGDATAFMT</b></p>
<p style="margin-left:22%;">Control the format of user data
passed <i>in</i> to the PixarLog codec when encoding and
passed <i>out</i> from when decoding. Possible values are:
PIXARLOGDATAFMT_8BIT for 8-bit unsigned pixels,
PIXARLOGDATAFMT_8BITABGR for 8-bit unsigned ABGR-ordered
pixels, PIXARLOGDATAFMT_11BITLOG for 11-bit log-encoded raw
data, PIXARLOGDATAFMT_12BITPICIO for 12-bit PICIO-compatible
data, PIXARLOGDATAFMT_16BIT for 16-bit signed samples, and
PIXARLOGDATAFMT_FLOAT for 32-bit IEEE floating point
samples.</p>
<p style="margin-left:11%;"><b>TIFFTAG_PIXARLOGQUALITY</b></p>
<p style="margin-left:22%;">Control the compression
technique used by the PixarLog codec. This value is treated
identically to TIFFTAG_ZIPQUALITY; see the above
description.</p>
<p style="margin-left:11%;"><b>TIFFTAG_SGILOGDATAFMT</b></p>
<p style="margin-left:22%;">Control the format of client
data passed <i>in</i> to the SGILog codec when encoding and
passed <i>out</i> from when decoding. Possible values are:
SGILOGDATAFMT_FLTXYZ for converting between LogLuv and
32-bit IEEE floating valued XYZ pixels,
SGILOGDATAFMT_16BITLUV for 16-bit encoded Luv pixels,
SGILOGDATAFMT_32BITRAW and SGILOGDATAFMT_24BITRAW for no
conversion of data, SGILOGDATAFMT_8BITRGB for returning
8-bit RGB data (valid only when decoding LogLuv-encoded
data), SGILOGDATAFMT_FLTY for converting between LogL and
32-bit IEEE floating valued Y pixels, SGILOGDATAFMT_16BITL
for 16-bit encoded L pixels, and SGILOGDATAFMT_8BITGRY for
returning 8-bit greyscale data (valid only when decoding
LogL-encoded data).</p>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<p style="margin-left:11%; margin-top: 1em">All error
messages are directed through the <i>TIFFError</i> routine.
By default messages are directed to <b>stderr</b> in the
form: <i>module: message\n.</i> Warning messages are
likewise directed through the <i>TIFFWarning</i>
routine.</p>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<p style="margin-left:11%; margin-top: 1em"><b>fax2tiff</b>(1),
<b>gif2tiff</b>(1), <b>pal2rgb</b>(1), <b>ppm2tiff</b>(1),
<b>rgb2ycbcr</b>(1), <b>ras2tiff</b>(1), <b>raw2tiff</b>(1),
<b>sgi2tiff</b>(1), <b>tiff2bw</b>(1), <b>tiffdither</b>(1),
<b>tiffdump</b>(1), <b>tiffcp</b>(1), <b>tiffcmp</b>(1),
<b>tiffgt</b>(1), <b>tiffinfo</b>(1), <b>tiffmedian</b>(1),
<b>tiffsplit</b>(1), <b>tiffsv</b>(1).</p>
<p style="margin-left:11%; margin-top: 1em"><b>Tag Image
File Format Specification &mdash; Revision 6.0</b>, an Aldus
Technical Memorandum.</p>
<p style="margin-left:11%; margin-top: 1em"><b>The Spirit
of TIFF Class F</b>, an appendix to the TIFF 5.0
specification prepared by Cygnet Technologies.</p>
<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.remotesensing.org/libtiff/</b></p>
<a name="BUGS"></a>
<h2>BUGS</h2>
<p style="margin-left:11%; margin-top: 1em">The library
does not support multi-sample images where some samples have
different bits/sample.</p>
<p style="margin-left:11%; margin-top: 1em">The library
does not support random access to compressed data that is
organized with more than one row per tile or strip.</p>
<hr>
</body>
</html>