10dcb9ef1SAndrey Kiselev<!-- Creator : groff version 1.18.1 --> 2f14d1a56SAndrey Kiselev<!-- CreationDate: Sat Feb 24 18:37:18 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>TIFFWriteDirectory</title> 887c5da6fSAndrey Kiselev</head> 987c5da6fSAndrey Kiselev<body> 1087c5da6fSAndrey Kiselev 1187c5da6fSAndrey Kiselev<h1 align=center>TIFFWriteDirectory</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="#RETURN VALUES">RETURN VALUES</a><br> 1687c5da6fSAndrey Kiselev<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 1787c5da6fSAndrey Kiselev<a href="#SEE ALSO">SEE ALSO</a><br> 1887c5da6fSAndrey Kiselev 1987c5da6fSAndrey Kiselev<hr> 2087c5da6fSAndrey Kiselev<a name="NAME"></a> 2187c5da6fSAndrey Kiselev<h2>NAME</h2> 220dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 230dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 240dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 250dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 260dcb9ef1SAndrey Kiselev<td width="8%"></td> 270dcb9ef1SAndrey Kiselev<td width="91%"> 280dcb9ef1SAndrey Kiselev<p>TIFFWriteDirectory, TIFFRewriteDirectory, 290dcb9ef1SAndrey KiselevTIFFCheckpointDirectory − write the current directory 300dcb9ef1SAndrey Kiselevin an open <small>TIFF</small> file</p> 310dcb9ef1SAndrey Kiselev</td> 320dcb9ef1SAndrey Kiselev</table> 3387c5da6fSAndrey Kiselev<a name="SYNOPSIS"></a> 3487c5da6fSAndrey Kiselev<h2>SYNOPSIS</h2> 350dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 360dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 370dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 380dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 390dcb9ef1SAndrey Kiselev<td width="8%"></td> 400dcb9ef1SAndrey Kiselev<td width="91%"> 410dcb9ef1SAndrey Kiselev<p><b>#include <tiffio.h></b></p> 420dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 430dcb9ef1SAndrey Kiselev<p><b>int TIFFWriteDirectory(TIFF *</b><i>tif</i><b>)<br> 4487c5da6fSAndrey Kiselevint TIFFRewriteDirectory(TIFF *</b><i>tif</i><b>)<br> 4587c5da6fSAndrey Kiselevint TIFFCheckpointDirectory(TIFF *</b><i>tif</i><b>)</b></p> 460dcb9ef1SAndrey Kiselev</td> 470dcb9ef1SAndrey Kiselev</table> 4887c5da6fSAndrey Kiselev<a name="DESCRIPTION"></a> 4987c5da6fSAndrey Kiselev<h2>DESCRIPTION</h2> 500dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 510dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 520dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 530dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 540dcb9ef1SAndrey Kiselev<td width="8%"></td> 550dcb9ef1SAndrey Kiselev<td width="91%"> 560dcb9ef1SAndrey Kiselev<p><i>TIFFWriteDirectory</i> will write the contents of the 570dcb9ef1SAndrey Kiselevcurrent directory to the file and setup to create a new 580dcb9ef1SAndrey Kiselevsubfile in the same file. Applications only need to call 590dcb9ef1SAndrey Kiselev<i>TIFFWriteDirectory</i> when writing multiple subfiles to 600dcb9ef1SAndrey Kiseleva single <small>TIFF</small> file. <i>TIFFWriteDirectory</i> 610dcb9ef1SAndrey Kiselevis automatically called by <i>TIFFClose</i> and 6287c5da6fSAndrey Kiselev<i>TIFFFlush</i> to write a modified directory if the file 6387c5da6fSAndrey Kiselevis open for writing.</p> 640dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 650dcb9ef1SAndrey Kiselev<p>The <i>TIFFRewriteDirectory</i> function operates 660dcb9ef1SAndrey Kiselevsimilarly to <i>TIFFWriteDirectory,</i> but can be called 670dcb9ef1SAndrey Kiselevwith directories previously read or written that already 680dcb9ef1SAndrey Kiselevhave an established location in the file. It will rewrite 690dcb9ef1SAndrey Kiselevthe directory, but instead of place it at it’s old 7087c5da6fSAndrey Kiselevlocation (as <i>TIFFWriteDirectory</i> would) it will place 7187c5da6fSAndrey Kiselevthem at the end of the file, correcting the pointer from the 7287c5da6fSAndrey Kiselevpreceeding directory or file header to point to it’s 7387c5da6fSAndrey Kiselevnew location. This is particularly important in cases where 7487c5da6fSAndrey Kiselevthe size of the directory and pointed to data has grown, so 7587c5da6fSAndrey Kiselevit won’t fit in the space available at the old 7687c5da6fSAndrey Kiselevlocation.</p> 770dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 780dcb9ef1SAndrey Kiselev<p>The <i>TIFFCheckpointDirectory</i> writes the current 790dcb9ef1SAndrey Kiselevstate of the tiff directory into the file to make what is 800dcb9ef1SAndrey Kiselevcurrently in the file readable. Unlike 810dcb9ef1SAndrey Kiselev<i>TIFFWriteDirectory, TIFFCheckpointDirectory</i> does not 820dcb9ef1SAndrey Kiselevfree up the directory data structures in memory, so they can 830dcb9ef1SAndrey Kiselevbe updated (as strips/tiles are written) and written again. 840dcb9ef1SAndrey KiselevReading such a partial file you will at worst get a tiff 850dcb9ef1SAndrey Kiselevread error for the first strip/tile encountered that is 860dcb9ef1SAndrey Kiselevincomplete, but you will at least get all the valid data in 870dcb9ef1SAndrey Kiselevthe file before that. When the file is complete, just use 8887c5da6fSAndrey Kiselev<i>TIFFWriteDirectory</i> as usual to finish it off 8987c5da6fSAndrey Kiselevcleanly.</p> 900dcb9ef1SAndrey Kiselev</td> 910dcb9ef1SAndrey Kiselev</table> 9287c5da6fSAndrey Kiselev<a name="RETURN VALUES"></a> 9387c5da6fSAndrey Kiselev<h2>RETURN VALUES</h2> 940dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 950dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 960dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 970dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 980dcb9ef1SAndrey Kiselev<td width="8%"></td> 990dcb9ef1SAndrey Kiselev<td width="91%"> 1000dcb9ef1SAndrey Kiselev<p>1 is returned when the contents are successfully written 1010dcb9ef1SAndrey Kiselevto the file. Otherwise, 0 is returned if an error was 1020dcb9ef1SAndrey Kiselevencountered when writing the directory contents.</p> 1030dcb9ef1SAndrey Kiselev</td> 1040dcb9ef1SAndrey Kiselev</table> 10587c5da6fSAndrey Kiselev<a name="DIAGNOSTICS"></a> 10687c5da6fSAndrey Kiselev<h2>DIAGNOSTICS</h2> 1070dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1080dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1090dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1100dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1110dcb9ef1SAndrey Kiselev<td width="8%"></td> 1120dcb9ef1SAndrey Kiselev<td width="91%"> 1130dcb9ef1SAndrey Kiselev<p>All error messages are directed to the 1140dcb9ef1SAndrey Kiselev<i>TIFFError</i>(3TIFF) routine.</p> 1150dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1160dcb9ef1SAndrey Kiselev<p><b>Error post-encoding before directory write</b>. Before 1170dcb9ef1SAndrey Kiselevwriting the contents of the current directory, any pending 1180dcb9ef1SAndrey Kiselevdata are flushed. This message indicates that an error 1190dcb9ef1SAndrey Kiselevoccurred while doing this.</p> 1200dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1210dcb9ef1SAndrey Kiselev<p><b>Error flushing data before directory write</b>. Before 1220dcb9ef1SAndrey Kiselevwriting the contents of the current directory, any pending 1230dcb9ef1SAndrey Kiselevdata are flushed. This message indicates that an error 1240dcb9ef1SAndrey Kiselevoccurred while doing this.</p> 1250dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1260dcb9ef1SAndrey Kiselev<p><b>Cannot write directory, out of space</b>. There was 1270dcb9ef1SAndrey Kiselevnot enough space to allocate a temporary area for the 1280dcb9ef1SAndrey Kiselevdirectory that was to be written.</p> 1290dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1300dcb9ef1SAndrey Kiselev<p><b>Error writing directory count</b>. A write error 1310dcb9ef1SAndrey Kiselevoccurred when writing the count of fields in the 1320dcb9ef1SAndrey Kiselevdirectory.</p> 1330dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1340dcb9ef1SAndrey Kiselev<p><b>Error writing directory contents</b>. A write error 1350dcb9ef1SAndrey Kiselevoccurred when writing the directory fields.</p> 1360dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1370dcb9ef1SAndrey Kiselev<p><b>Error writing directory link</b>. A write error 1380dcb9ef1SAndrey Kiselevoccurred when writing the link to the next directory.</p> 1390dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1400dcb9ef1SAndrey Kiselev<p><b>Error writing data for field "%s"</b>. A 1410dcb9ef1SAndrey Kiselevwrite error occurred when writing indirect data for the 1420dcb9ef1SAndrey Kiselevspecified field.</p> 1430dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1440dcb9ef1SAndrey Kiselev<p><b>Error writing TIFF header</b>. A write error occurred 1450dcb9ef1SAndrey Kiselevwhen re-writing header at the front of the file.</p> 1460dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1470dcb9ef1SAndrey Kiselev<p><b>Error fetching directory count</b>. A read error 1480dcb9ef1SAndrey Kiselevoccurred when fetching the directory count field for a 1490dcb9ef1SAndrey Kiselevprevious directory. This can occur when setting up a link to 1500dcb9ef1SAndrey Kiselevthe directory that is being written.</p> 1510dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1520dcb9ef1SAndrey Kiselev<p><b>Error fetching directory link</b>. A read error 1530dcb9ef1SAndrey Kiselevoccurred when fetching the directory link field for a 1540dcb9ef1SAndrey Kiselevprevious directory. This can occur when setting up a link to 1550dcb9ef1SAndrey Kiselevthe directory that is being written.</p> 1560dcb9ef1SAndrey Kiselev</td> 1570dcb9ef1SAndrey Kiselev</table> 15887c5da6fSAndrey Kiselev<a name="SEE ALSO"></a> 15987c5da6fSAndrey Kiselev<h2>SEE ALSO</h2> 1600dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1610dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1620dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1630dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1640dcb9ef1SAndrey Kiselev<td width="8%"></td> 1650dcb9ef1SAndrey Kiselev<td width="91%"> 1660dcb9ef1SAndrey Kiselev<p><b>TIFFOpen</b>(3TIFF), <b>TIFFError</b>(3TIFF), 1670dcb9ef1SAndrey Kiselev<b>TIFFReadDirectory</b>(3TIFF), 1680776b32dSAndrey Kiselev<b>TIFFSetDirectory</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> 1690dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1700dcb9ef1SAndrey Kiselev<p>Libtiff library home page: 171*d4dd6cccSBob Friesenhahn<b>http://www.simplesystems.org/libtiff/</b></p> 1720dcb9ef1SAndrey Kiselev</td> 1730dcb9ef1SAndrey Kiselev</table> 17487c5da6fSAndrey Kiselev<hr> 17587c5da6fSAndrey Kiselev</body> 17687c5da6fSAndrey Kiselev</html> 177