10dcb9ef1SAndrey Kiselev<!-- Creator : groff version 1.18.1 --> 2*f14d1a56SAndrey Kiselev<!-- CreationDate: Sat Feb 24 18:37:16 2007 --> 387c5da6fSAndrey Kiselev<html> 487c5da6fSAndrey Kiselev<head> 587c5da6fSAndrey Kiselev<meta name="generator" content="groff -Thtml, see www.gnu.org"> 687c5da6fSAndrey Kiselev<meta name="Content-Style" content="text/css"> 787c5da6fSAndrey Kiselev<title>TIFFOpen</title> 887c5da6fSAndrey Kiselev</head> 987c5da6fSAndrey Kiselev<body> 1087c5da6fSAndrey Kiselev 1187c5da6fSAndrey Kiselev<h1 align=center>TIFFOpen</h1> 1287c5da6fSAndrey Kiselev<a href="#NAME">NAME</a><br> 1387c5da6fSAndrey Kiselev<a href="#SYNOPSIS">SYNOPSIS</a><br> 1487c5da6fSAndrey Kiselev<a href="#DESCRIPTION">DESCRIPTION</a><br> 1587c5da6fSAndrey Kiselev<a href="#OPTIONS">OPTIONS</a><br> 1687c5da6fSAndrey Kiselev<a href="#BYTE ORDER">BYTE ORDER</a><br> 1787c5da6fSAndrey Kiselev<a href="#RETURN VALUES">RETURN VALUES</a><br> 1887c5da6fSAndrey Kiselev<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 1987c5da6fSAndrey Kiselev<a href="#SEE ALSO">SEE ALSO</a><br> 2087c5da6fSAndrey Kiselev 2187c5da6fSAndrey Kiselev<hr> 2287c5da6fSAndrey Kiselev<a name="NAME"></a> 2387c5da6fSAndrey Kiselev<h2>NAME</h2> 240dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 250dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 260dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 270dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 280dcb9ef1SAndrey Kiselev<td width="8%"></td> 290dcb9ef1SAndrey Kiselev<td width="91%"> 300dcb9ef1SAndrey Kiselev<p>TIFFOpen, TIFFFdOpen, TIFFClientOpen − open a 3187c5da6fSAndrey Kiselev<small>TIFF</small> file for reading or writing</p> 320dcb9ef1SAndrey Kiselev</td> 330dcb9ef1SAndrey Kiselev</table> 3487c5da6fSAndrey Kiselev<a name="SYNOPSIS"></a> 3587c5da6fSAndrey Kiselev<h2>SYNOPSIS</h2> 360dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 370dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 380dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 390dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 400dcb9ef1SAndrey Kiselev<td width="8%"></td> 410dcb9ef1SAndrey Kiselev<td width="91%"> 420dcb9ef1SAndrey Kiselev<p><b>#include <tiffio.h></b></p> 430dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 440dcb9ef1SAndrey Kiselev<p><b>TIFF* TIFFOpen(const char *</b><i>filename</i><b>, 450dcb9ef1SAndrey Kiselevconst char *</b><i>mode</i><b>)<br> 4687c5da6fSAndrey KiselevTIFF* TIFFFdOpen(const int</b> <i>fd</i><b>, const char 4787c5da6fSAndrey Kiselev*</b><i>filename</i><b>, const char 4887c5da6fSAndrey Kiselev*</b><i>mode</i><b>)</b></p> 490dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 500dcb9ef1SAndrey Kiselev<p><b>typedef tsize_t (*TIFFReadWriteProc)(thandle_t, 510dcb9ef1SAndrey Kiselevtdata_t, tsize_t);<br> 5287c5da6fSAndrey Kiselevtypedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);<br> 5387c5da6fSAndrey Kiselevtypedef int (*TIFFCloseProc)(thandle_t);<br> 5487c5da6fSAndrey Kiselevtypedef toff_t (*TIFFSizeProc)(thandle_t);<br> 5587c5da6fSAndrey Kiselevtypedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, 5687c5da6fSAndrey Kiselevtoff_t*);<br> 5787c5da6fSAndrey Kiselevtypedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, 5887c5da6fSAndrey Kiselevtoff_t);</b></p> 590dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 600dcb9ef1SAndrey Kiselev<p><b>TIFF* TIFFClientOpen(const char 610dcb9ef1SAndrey Kiselev*</b><i>filename</i><b>, const char *</b><i>mode</i><b>, 620dcb9ef1SAndrey Kiselevthandle_t</b> <i>clientdata</i><b>, TIFFReadWriteProc</b> 6387c5da6fSAndrey Kiselev<i>readproc</i><b>, TIFFReadWriteProc</b> 6487c5da6fSAndrey Kiselev<i>writeproc</i><b>, TIFFSeekProc</b> <i>seekproc</i><b>, 6587c5da6fSAndrey KiselevTIFFCloseProc</b> <i>closeproc</i><b>, TIFFSizeProc</b> 6687c5da6fSAndrey Kiselev<i>sizeproc</i><b>, TIFFMapFileProc</b> <i>mapproc</i><b>, 6787c5da6fSAndrey KiselevTIFFUnmapFileProc</b> <i>unmapproc</i><b>)</b></p> 680dcb9ef1SAndrey Kiselev</td> 690dcb9ef1SAndrey Kiselev</table> 7087c5da6fSAndrey Kiselev<a name="DESCRIPTION"></a> 7187c5da6fSAndrey Kiselev<h2>DESCRIPTION</h2> 720dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 730dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 740dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 750dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 760dcb9ef1SAndrey Kiselev<td width="8%"></td> 770dcb9ef1SAndrey Kiselev<td width="91%"> 780dcb9ef1SAndrey Kiselev<p><i>TIFFOpen</i> opens a <small>TIFF</small> file whose 790dcb9ef1SAndrey Kiselevname is <i>filename</i> and returns a handle to be used in 8087c5da6fSAndrey Kiselevsubsequent calls to routines in <i>libtiff</i>. If the open 8187c5da6fSAndrey Kiselevoperation fails, then zero is returned. The <i>mode</i> 8287c5da6fSAndrey Kiselevparameter specifies if the file is to be opened for reading 8387c5da6fSAndrey Kiselev(‘‘r’’), writing 8487c5da6fSAndrey Kiselev(‘‘w’’), or appending 8587c5da6fSAndrey Kiselev(‘‘a’’) and, optionally, whether to 8687c5da6fSAndrey Kiselevoverride certain default aspects of library operation (see 8787c5da6fSAndrey Kiselevbelow). When a file is opened for appending, existing data 8887c5da6fSAndrey Kiselevwill not be touched; instead new data will be written as 8987c5da6fSAndrey Kiselevadditional subfiles. If an existing file is opened for 9087c5da6fSAndrey Kiselevwriting, all previous data is overwritten.</p> 910dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 920dcb9ef1SAndrey Kiselev<p>If a file is opened for reading, the first 930dcb9ef1SAndrey Kiselev<small>TIFF</small> directory in the file is automatically 940dcb9ef1SAndrey Kiselevread (also see <i>TIFFSetDirectory</i>(3TIFF) for reading 950dcb9ef1SAndrey Kiselevdirectories other than the first). If a file is opened for 960dcb9ef1SAndrey Kiselevwriting or appending, a default directory is automatically 970dcb9ef1SAndrey Kiselevcreated for writing subsequent data. This directory has all 980dcb9ef1SAndrey Kiselevthe default values specified in <small>TIFF</small> Revision 990dcb9ef1SAndrey Kiselev6.0: <i>BitsPerSample</i>=1, <i>ThreshHolding</i>=bilevel 1000dcb9ef1SAndrey Kiselevart scan, <i>FillOrder</i>=1 (most significant bit of each 1010dcb9ef1SAndrey Kiselevdata byte is filled first), <i>Orientation</i>=1 (the 0th 1020dcb9ef1SAndrey Kiselevrow represents the visual top of the image, and the 0th 1030dcb9ef1SAndrey Kiselevcolumn represents the visual left hand side), 10487c5da6fSAndrey Kiselev<i>SamplesPerPixel</i>=1, <i>RowsPerStrip</i>=infinity, 10587c5da6fSAndrey Kiselev<i>ResolutionUnit</i>=2 (inches), and <i>Compression</i>=1 10687c5da6fSAndrey Kiselev(no compression). To alter these values, or to define values 10787c5da6fSAndrey Kiselevfor additional fields, <i>TIFFSetField</i>(3TIFF) must be 10887c5da6fSAndrey Kiselevused.</p> 1090dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1100dcb9ef1SAndrey Kiselev<p><i>TIFFFdOpen</i> is like <i>TIFFOpen</i> except that it 1110dcb9ef1SAndrey Kiselevopens a <small>TIFF</small> file given an open file 1120dcb9ef1SAndrey Kiselevdescriptor <i>fd</i>. The file’s name and mode must 1130dcb9ef1SAndrey Kiselevreflect that of the open descriptor. The object associated 1140dcb9ef1SAndrey Kiselevwith the file descriptor <b>must support random 1150dcb9ef1SAndrey Kiselevaccess</b>.</p> 1160dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1170dcb9ef1SAndrey Kiselev<p><i>TIFFClientOpen</i> is like <i>TIFFOpen</i> except that 1180dcb9ef1SAndrey Kiselevthe caller supplies a collection of functions that the 1190dcb9ef1SAndrey Kiselevlibrary will use to do <small>UNIX</small> -like I/O 1200dcb9ef1SAndrey Kiselevoperations. The <i>readproc</i> and <i>writeproc</i> are 1210dcb9ef1SAndrey Kiselevcalled to read and write data at the current file position. 1220dcb9ef1SAndrey Kiselev<i>seekproc</i> is called to change the current file 1230dcb9ef1SAndrey Kiselevposition a la <i>lseek</i>(2). <i>closeproc</i> is invoked 1240dcb9ef1SAndrey Kiselevto release any resources associated with an open file. 1250dcb9ef1SAndrey Kiselev<i>sizeproc</i> is invoked to obtain the size in bytes of a 1260dcb9ef1SAndrey Kiselevfile. <i>mapproc</i> and <i>unmapproc</i> are called to map 1270dcb9ef1SAndrey Kiselevand unmap a file’s contents in memory; c.f. 1280dcb9ef1SAndrey Kiselev<i>mmap</i>(2) and <i>munmap</i>(2). The <i>clientdata</i> 1290dcb9ef1SAndrey Kiselevparameter is an opaque ‘‘handle’’ 1300dcb9ef1SAndrey Kiselevpassed to the client-specified routines passed as parameters 1310dcb9ef1SAndrey Kiselevto <i>TIFFClientOpen</i>.</p> 1320dcb9ef1SAndrey Kiselev</td> 1330dcb9ef1SAndrey Kiselev</table> 13487c5da6fSAndrey Kiselev<a name="OPTIONS"></a> 13587c5da6fSAndrey Kiselev<h2>OPTIONS</h2> 1360dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1370dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1380dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1390dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1400dcb9ef1SAndrey Kiselev<td width="8%"></td> 1410dcb9ef1SAndrey Kiselev<td width="91%"> 1420dcb9ef1SAndrey Kiselev<p>The open mode parameter can include the following flags 1430dcb9ef1SAndrey Kiselevin addition to the ‘‘r’’, 14487c5da6fSAndrey Kiselev‘‘w’’, and 14587c5da6fSAndrey Kiselev‘‘a’’ flags. Note however that 14687c5da6fSAndrey Kiselevoption flags must follow the read-write-append 14787c5da6fSAndrey Kiselevspecification.</p> 1480dcb9ef1SAndrey Kiselev</td> 14987c5da6fSAndrey Kiselev</table> 1500dcb9ef1SAndrey Kiselev<!-- TABS --> 1510dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1520dcb9ef1SAndrey Kiselev cols="5" cellspacing="0" cellpadding="0"> 1530dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1540dcb9ef1SAndrey Kiselev<td width="10%"></td> 1550dcb9ef1SAndrey Kiselev<td width="2%"> 156c3402403SBob Friesenhahn 1570dcb9ef1SAndrey Kiselev<p><b>l</b></p> 1580dcb9ef1SAndrey Kiselev</td> 1590dcb9ef1SAndrey Kiselev<td width="6%"></td> 1600dcb9ef1SAndrey Kiselev<td width="80%"> 1610dcb9ef1SAndrey Kiselev 1620dcb9ef1SAndrey Kiselev<p>When creating a new file force information be written 1630dcb9ef1SAndrey Kiselevwith Little-Endian byte order (but see below). By default 1640dcb9ef1SAndrey Kiselevthe library will create new files using the native 1650dcb9ef1SAndrey Kiselev<small>CPU</small> byte order.</p> 1660dcb9ef1SAndrey Kiselev</td> 1670dcb9ef1SAndrey Kiselev<td width="0%"> 1680dcb9ef1SAndrey Kiselev</td> 1690dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1700dcb9ef1SAndrey Kiselev<td width="10%"></td> 1710dcb9ef1SAndrey Kiselev<td width="2%"> 1720dcb9ef1SAndrey Kiselev 1730dcb9ef1SAndrey Kiselev<p><b>b</b></p> 1740dcb9ef1SAndrey Kiselev</td> 1750dcb9ef1SAndrey Kiselev<td width="6%"></td> 1760dcb9ef1SAndrey Kiselev<td width="80%"> 1770dcb9ef1SAndrey Kiselev 1780dcb9ef1SAndrey Kiselev<p>When creating a new file force information be written 1790dcb9ef1SAndrey Kiselevwith Big-Endian byte order (but see below). By default the 1800dcb9ef1SAndrey Kiselevlibrary will create new files using the native 1810dcb9ef1SAndrey Kiselev<small>CPU</small> byte order.</p> 1820dcb9ef1SAndrey Kiselev</td> 1830dcb9ef1SAndrey Kiselev<td width="0%"> 1840dcb9ef1SAndrey Kiselev</td> 1850dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1860dcb9ef1SAndrey Kiselev<td width="10%"></td> 1870dcb9ef1SAndrey Kiselev<td width="2%"> 1880dcb9ef1SAndrey Kiselev 1890dcb9ef1SAndrey Kiselev<p><b>L</b></p> 1900dcb9ef1SAndrey Kiselev</td> 1910dcb9ef1SAndrey Kiselev<td width="6%"></td> 1920dcb9ef1SAndrey Kiselev<td width="80%"> 1930dcb9ef1SAndrey Kiselev 1940dcb9ef1SAndrey Kiselev<p>Force image data that is read or written to be treated 1950dcb9ef1SAndrey Kiselevwith bits filled from Least Significant Bit ( 1960dcb9ef1SAndrey Kiselev<small>LSB</small> ) to Most Significant Bit ( 1970dcb9ef1SAndrey Kiselev<small>MSB</small> ). Note that this is the opposite to the 1980dcb9ef1SAndrey Kiselevway the library has worked from its inception.</p> 1990dcb9ef1SAndrey Kiselev</td> 2000dcb9ef1SAndrey Kiselev<td width="0%"> 2010dcb9ef1SAndrey Kiselev</td> 2020dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2030dcb9ef1SAndrey Kiselev<td width="10%"></td> 2040dcb9ef1SAndrey Kiselev<td width="2%"> 2050dcb9ef1SAndrey Kiselev 2060dcb9ef1SAndrey Kiselev<p><b>B</b></p> 2070dcb9ef1SAndrey Kiselev</td> 2080dcb9ef1SAndrey Kiselev<td width="6%"></td> 2090dcb9ef1SAndrey Kiselev<td width="80%"> 2100dcb9ef1SAndrey Kiselev 2110dcb9ef1SAndrey Kiselev<p>Force image data that is read or written to be treated 2120dcb9ef1SAndrey Kiselevwith bits filled from Most Significant Bit ( 2130dcb9ef1SAndrey Kiselev<small>MSB</small> ) to Least Significant Bit ( 2140dcb9ef1SAndrey Kiselev<small>LSB</small> ); this is the default.</p> 2150dcb9ef1SAndrey Kiselev</td> 2160dcb9ef1SAndrey Kiselev<td width="0%"> 2170dcb9ef1SAndrey Kiselev</td> 2180dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2190dcb9ef1SAndrey Kiselev<td width="10%"></td> 2200dcb9ef1SAndrey Kiselev<td width="2%"> 2210dcb9ef1SAndrey Kiselev 2220dcb9ef1SAndrey Kiselev<p><b>H</b></p> 2230dcb9ef1SAndrey Kiselev</td> 2240dcb9ef1SAndrey Kiselev<td width="6%"></td> 2250dcb9ef1SAndrey Kiselev<td width="80%"> 2260dcb9ef1SAndrey Kiselev 2270dcb9ef1SAndrey Kiselev<p>Force image data that is read or written to be treated 2280dcb9ef1SAndrey Kiselevwith bits filled in the same order as the native 2290dcb9ef1SAndrey Kiselev<small>CPU.</small></p> 2300dcb9ef1SAndrey Kiselev</td> 2310dcb9ef1SAndrey Kiselev<td width="0%"> 2320dcb9ef1SAndrey Kiselev</td> 2330dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2340dcb9ef1SAndrey Kiselev<td width="10%"></td> 2350dcb9ef1SAndrey Kiselev<td width="2%"> 2360dcb9ef1SAndrey Kiselev 2370dcb9ef1SAndrey Kiselev<p><b>M</b></p> 2380dcb9ef1SAndrey Kiselev</td> 2390dcb9ef1SAndrey Kiselev<td width="6%"></td> 2400dcb9ef1SAndrey Kiselev<td width="80%"> 2410dcb9ef1SAndrey Kiselev 2420dcb9ef1SAndrey Kiselev<p>Enable the use of memory-mapped files for images opened 2430dcb9ef1SAndrey Kiselevread-only. If the underlying system does not support 2440dcb9ef1SAndrey Kiselevmemory-mapped files or if the specific image being opened 2450dcb9ef1SAndrey Kiselevcannot be memory-mapped then the library will fallback to 2460dcb9ef1SAndrey Kiselevusing the normal system interface for reading information. 2470dcb9ef1SAndrey KiselevBy default the library will attempt to use memory-mapped 2480dcb9ef1SAndrey Kiselevfiles.</p> 2490dcb9ef1SAndrey Kiselev</td> 2500dcb9ef1SAndrey Kiselev<td width="0%"> 2510dcb9ef1SAndrey Kiselev</td> 2520dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2530dcb9ef1SAndrey Kiselev<td width="10%"></td> 2540dcb9ef1SAndrey Kiselev<td width="2%"> 2550dcb9ef1SAndrey Kiselev 2560dcb9ef1SAndrey Kiselev<p><b>m</b></p> 2570dcb9ef1SAndrey Kiselev</td> 2580dcb9ef1SAndrey Kiselev<td width="6%"></td> 2590dcb9ef1SAndrey Kiselev<td width="80%"> 2600dcb9ef1SAndrey Kiselev 2610dcb9ef1SAndrey Kiselev<p>Disable the use of memory-mapped files.</p> 2620dcb9ef1SAndrey Kiselev</td> 2630dcb9ef1SAndrey Kiselev<td width="0%"> 2640dcb9ef1SAndrey Kiselev</td> 2650dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2660dcb9ef1SAndrey Kiselev<td width="10%"></td> 2670dcb9ef1SAndrey Kiselev<td width="2%"> 2680dcb9ef1SAndrey Kiselev 2690dcb9ef1SAndrey Kiselev<p><b>C</b></p> 2700dcb9ef1SAndrey Kiselev</td> 2710dcb9ef1SAndrey Kiselev<td width="6%"></td> 2720dcb9ef1SAndrey Kiselev<td width="80%"> 2730dcb9ef1SAndrey Kiselev 2740dcb9ef1SAndrey Kiselev<p>Enable the use of ‘‘strip 2750dcb9ef1SAndrey Kiselevchopping’’ when reading images that are 2760dcb9ef1SAndrey Kiselevcomprised of a single strip or tile of uncompressed data. 2770dcb9ef1SAndrey KiselevStrip chopping is a mechanism by which the library will 2780dcb9ef1SAndrey Kiselevautomatically convert the single-strip image to multiple 2790dcb9ef1SAndrey Kiselevstrips, each of which has about 8 Kilobytes of data. This 2800dcb9ef1SAndrey Kiselevfacility can be useful in reducing the amount of memory used 2810dcb9ef1SAndrey Kiselevto read an image because the library normally reads each 2820dcb9ef1SAndrey Kiselevstrip in its entirety. Strip chopping does however alter the 2830dcb9ef1SAndrey Kiselevapparent contents of the image because when an image is 2840dcb9ef1SAndrey Kiselevdivided into multiple strips it looks as though the 2850dcb9ef1SAndrey Kiselevunderlying file contains multiple separate strips. Finally, 2860dcb9ef1SAndrey Kiselevnote that default handling of strip chopping is a 2870dcb9ef1SAndrey Kiselevcompile-time configuration parameter. The default behaviour, 2880dcb9ef1SAndrey Kiselevfor backwards compatibility, is to enable strip 2890dcb9ef1SAndrey Kiselevchopping.</p> 2900dcb9ef1SAndrey Kiselev</td> 2910dcb9ef1SAndrey Kiselev<td width="0%"> 2920dcb9ef1SAndrey Kiselev</td> 2930dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2940dcb9ef1SAndrey Kiselev<td width="10%"></td> 2950dcb9ef1SAndrey Kiselev<td width="2%"> 2960dcb9ef1SAndrey Kiselev 2970dcb9ef1SAndrey Kiselev<p><b>c</b></p> 2980dcb9ef1SAndrey Kiselev</td> 2990dcb9ef1SAndrey Kiselev<td width="6%"></td> 3000dcb9ef1SAndrey Kiselev<td width="80%"> 3010dcb9ef1SAndrey Kiselev 3020dcb9ef1SAndrey Kiselev<p>Disable the use of strip chopping when reading 3030dcb9ef1SAndrey Kiselevimages.</p> 3040dcb9ef1SAndrey Kiselev</td> 3050dcb9ef1SAndrey Kiselev<td width="0%"> 3060dcb9ef1SAndrey Kiselev</td> 3070dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 3080dcb9ef1SAndrey Kiselev<td width="10%"></td> 3090dcb9ef1SAndrey Kiselev<td width="2%"> 3100dcb9ef1SAndrey Kiselev 3110dcb9ef1SAndrey Kiselev<p><b>h</b></p> 3120dcb9ef1SAndrey Kiselev</td> 3130dcb9ef1SAndrey Kiselev<td width="6%"></td> 3140dcb9ef1SAndrey Kiselev<td width="80%"> 3150dcb9ef1SAndrey Kiselev 3160dcb9ef1SAndrey Kiselev<p>Read TIFF header only, do not load the first image 3170dcb9ef1SAndrey Kiselevdirectory. That could be useful in case of the broken first 3180dcb9ef1SAndrey Kiselevdirectory. We can open the file and proceed to the other 3190dcb9ef1SAndrey Kiselevdirectories.</p> 3200dcb9ef1SAndrey Kiselev</td> 3210dcb9ef1SAndrey Kiselev<td width="0%"> 3220dcb9ef1SAndrey Kiselev</td> 3230dcb9ef1SAndrey Kiselev</table> 32487c5da6fSAndrey Kiselev<a name="BYTE ORDER"></a> 32587c5da6fSAndrey Kiselev<h2>BYTE ORDER</h2> 3260dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3270dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 3280dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 3290dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 3300dcb9ef1SAndrey Kiselev<td width="8%"></td> 3310dcb9ef1SAndrey Kiselev<td width="91%"> 3320dcb9ef1SAndrey Kiselev<p>The <small>TIFF</small> specification (<b>all 3330dcb9ef1SAndrey Kiselevversions</b>) states that compliant readers <i>must be 3340dcb9ef1SAndrey Kiselevcapable of reading images written in either byte order</i>. 3350dcb9ef1SAndrey KiselevNonetheless some software that claims to support the reading 3360dcb9ef1SAndrey Kiselevof <small>TIFF</small> images is incapable of reading images 3370dcb9ef1SAndrey Kiselevin anything but the native <small>CPU</small> byte order on 33887c5da6fSAndrey Kiselevwhich the software was written. (Especially notorious are 33987c5da6fSAndrey Kiselevapplications written to run on Intel-based machines.) By 34087c5da6fSAndrey Kiselevdefault the library will create new files with the native 34187c5da6fSAndrey Kiselevbyte-order of the <small>CPU</small> on which the 34287c5da6fSAndrey Kiselevapplication is run. This ensures optimal performance and is 34387c5da6fSAndrey Kiselevportable to any application that conforms to the TIFF 34487c5da6fSAndrey Kiselevspecification. To force the library to use a specific 34587c5da6fSAndrey Kiselevbyte-order when creating a new file the 34687c5da6fSAndrey Kiselev‘‘b’’ and 34787c5da6fSAndrey Kiselev‘‘l’’ option flags may be included 34887c5da6fSAndrey Kiselevin the call to open a file; for example, 34987c5da6fSAndrey Kiselev‘‘wb’’ or 35087c5da6fSAndrey Kiselev‘‘wl’’.</p> 3510dcb9ef1SAndrey Kiselev</td> 3520dcb9ef1SAndrey Kiselev</table> 35387c5da6fSAndrey Kiselev<a name="RETURN VALUES"></a> 35487c5da6fSAndrey Kiselev<h2>RETURN VALUES</h2> 3550dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3560dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 3570dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 3580dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 3590dcb9ef1SAndrey Kiselev<td width="8%"></td> 3600dcb9ef1SAndrey Kiselev<td width="91%"> 3610dcb9ef1SAndrey Kiselev<p>Upon successful completion <i>TIFFOpen</i>, 3620dcb9ef1SAndrey Kiselev<i>TIFFFdOpen</i>, and <i>TIFFClientOpen</i> return a 3630dcb9ef1SAndrey Kiselev<small>TIFF</small> pointer. Otherwise, NULL is 3640dcb9ef1SAndrey Kiselevreturned.</p> 3650dcb9ef1SAndrey Kiselev</td> 3660dcb9ef1SAndrey Kiselev</table> 36787c5da6fSAndrey Kiselev<a name="DIAGNOSTICS"></a> 36887c5da6fSAndrey Kiselev<h2>DIAGNOSTICS</h2> 3690dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3700dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 3710dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 3720dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 3730dcb9ef1SAndrey Kiselev<td width="8%"></td> 3740dcb9ef1SAndrey Kiselev<td width="91%"> 3750dcb9ef1SAndrey Kiselev<p>All error messages are directed to the 3760dcb9ef1SAndrey Kiselev<i>TIFFError</i>(3TIFF) routine. Likewise, warning messages 3770dcb9ef1SAndrey Kiselevare directed to the <i>TIFFWarning</i>(3TIFF) routine.</p> 3780dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3790dcb9ef1SAndrey Kiselev<p><b>"%s": Bad mode</b>. The specified 3800dcb9ef1SAndrey Kiselev<i>mode</i> parameter was not one of 3810dcb9ef1SAndrey Kiselev‘‘r’’ (read), 38287c5da6fSAndrey Kiselev‘‘w’’ (write), or 38387c5da6fSAndrey Kiselev‘‘a’’ (append).</p> 3840dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3850dcb9ef1SAndrey Kiselev<p><b>%s: Cannot open</b>. <i>TIFFOpen</i>() was unable to 3860dcb9ef1SAndrey Kiselevopen the specified filename for read/writing.</p> 3870dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3880dcb9ef1SAndrey Kiselev<p><b>Cannot read TIFF header</b>. An error occurred while 3890dcb9ef1SAndrey Kiselevattempting to read the header information.</p> 3900dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3910dcb9ef1SAndrey Kiselev<p><b>Error writing TIFF header</b>. An error occurred while 3920dcb9ef1SAndrey Kiselevwriting the default header information for a new file.</p> 3930dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3940dcb9ef1SAndrey Kiselev<p><b>Not a TIFF file, bad magic number %d (0x%x)</b>. The 3950dcb9ef1SAndrey Kiselevmagic number in the header was not (hex) 0x4d4d or (hex) 3960dcb9ef1SAndrey Kiselev0x4949.</p> 3970dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3980dcb9ef1SAndrey Kiselev<p><b>Not a TIFF file, bad version number %d (0x%x)</b>. The 3990dcb9ef1SAndrey Kiselevversion field in the header was not 42 (decimal).</p> 4000dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 4010dcb9ef1SAndrey Kiselev<p><b>Cannot append to file that has opposite byte 4020dcb9ef1SAndrey Kiselevordering</b>. A file with a byte ordering opposite to the 4030dcb9ef1SAndrey Kiselevnative byte ordering of the current machine was opened for 4040dcb9ef1SAndrey Kiselevappending (‘‘a’’). This is a 4050dcb9ef1SAndrey Kiselevlimitation of the library.</p> 4060dcb9ef1SAndrey Kiselev</td> 4070dcb9ef1SAndrey Kiselev</table> 40887c5da6fSAndrey Kiselev<a name="SEE ALSO"></a> 40987c5da6fSAndrey Kiselev<h2>SEE ALSO</h2> 4100dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 4110dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 4120dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 4130dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 4140dcb9ef1SAndrey Kiselev<td width="8%"></td> 4150dcb9ef1SAndrey Kiselev<td width="91%"> 4160dcb9ef1SAndrey Kiselev<p><i>libtiff</i>(3TIFF), <i>TIFFClose</i>(3TIFF)</p> 4170dcb9ef1SAndrey Kiselev</td> 4180dcb9ef1SAndrey Kiselev</table> 41987c5da6fSAndrey Kiselev<hr> 42087c5da6fSAndrey Kiselev</body> 42187c5da6fSAndrey Kiselev</html> 422