1<!-- Creator : groff version 1.18.1 --> 2<!-- CreationDate: Sat Feb 24 18:37:18 2007 --> 3<html> 4<head> 5<meta name="generator" content="groff -Thtml, see www.gnu.org"> 6<meta name="Content-Style" content="text/css"> 7<title>TIFFWriteScanline</title> 8</head> 9<body> 10 11<h1 align=center>TIFFWriteScanline</h1> 12<a href="#NAME">NAME</a><br> 13<a href="#SYNOPSIS">SYNOPSIS</a><br> 14<a href="#DESCRIPTION">DESCRIPTION</a><br> 15<a href="#NOTES">NOTES</a><br> 16<a href="#RETURN VALUES">RETURN VALUES</a><br> 17<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 18<a href="#BUGS">BUGS</a><br> 19<a href="#SEE ALSO">SEE ALSO</a><br> 20 21<hr> 22<a name="NAME"></a> 23<h2>NAME</h2> 24<!-- INDENTATION --> 25<table width="100%" border=0 rules="none" frame="void" 26 cols="2" cellspacing="0" cellpadding="0"> 27<tr valign="top" align="left"> 28<td width="8%"></td> 29<td width="91%"> 30<p>TIFFWriteScanline − write a scanline to an open 31<small>TIFF</small> file</p> 32</td> 33</table> 34<a name="SYNOPSIS"></a> 35<h2>SYNOPSIS</h2> 36<!-- INDENTATION --> 37<table width="100%" border=0 rules="none" frame="void" 38 cols="2" cellspacing="0" cellpadding="0"> 39<tr valign="top" align="left"> 40<td width="8%"></td> 41<td width="91%"> 42<p><b>#include <tiffio.h></b></p> 43<!-- INDENTATION --> 44<p><b>int TIFFWriteScanline(TIFF *</b><i>tif</i><b>, 45tdata_t</b> <i>buf</i><b>, uint32</b> <i>row</i><b>, 46tsample_t</b> <i>sample</i><b>)</b></p> 47</td> 48</table> 49<a name="DESCRIPTION"></a> 50<h2>DESCRIPTION</h2> 51<!-- INDENTATION --> 52<table width="100%" border=0 rules="none" frame="void" 53 cols="2" cellspacing="0" cellpadding="0"> 54<tr valign="top" align="left"> 55<td width="8%"></td> 56<td width="91%"> 57<p>Write data to a file at the specified row. The 58<i>sample</i> parameter is used only if data are organized 59in separate planes (<i>PlanarConfiguration</i>=2). The data 60are assumed to be uncompressed and in the native bit- and 61byte-order of the host machine. The data written to the file 62is compressed according to the compression scheme of the 63current <small>TIFF</small> directory (see further below). 64If the current scanline is past the end of the current 65subfile, the <i>ImageLength</i> field is automatically 66increased to include the scanline (except for 67<i>PlanarConfiguration</i>=2, where the <i>ImageLength</i> 68cannot be changed once the first data are written). If the 69<i>ImageLength</i> is increased, the <i>StripOffsets</i> and 70<i>StripByteCounts</i> fields are similarly enlarged to 71reflect data written past the previous end of image.</p> 72</td> 73</table> 74<a name="NOTES"></a> 75<h2>NOTES</h2> 76<!-- INDENTATION --> 77<table width="100%" border=0 rules="none" frame="void" 78 cols="2" cellspacing="0" cellpadding="0"> 79<tr valign="top" align="left"> 80<td width="8%"></td> 81<td width="91%"> 82<p>The library writes encoded data using the native machine 83byte order. Correctly implemented <small>TIFF</small> 84readers are expected to do any necessary byte-swapping to 85correctly process image data with BitsPerSample greater than 868. The library attempts to hide bit-ordering differences 87between the image and the native machine by converting data 88from the native machine order.</p> 89<!-- INDENTATION --> 90<p>In C++ the <i>sample</i> parameter defaults to 0.</p> 91<!-- INDENTATION --> 92<p>Once data are written to a file for the current 93directory, the values of certain tags may not be altered; 94see <i>TIFFSetField</i>(3TIFF) for more information.</p> 95<!-- INDENTATION --> 96<p>It is not possible to write scanlines to a file that uses 97a tiled organization. The routine <i>TIFFIsTiled</i> can be 98used to determine if the file is organized as tiles or 99strips.</p> 100</td> 101</table> 102<a name="RETURN VALUES"></a> 103<h2>RETURN VALUES</h2> 104<!-- INDENTATION --> 105<table width="100%" border=0 rules="none" frame="void" 106 cols="2" cellspacing="0" cellpadding="0"> 107<tr valign="top" align="left"> 108<td width="8%"></td> 109<td width="91%"> 110<p><i>TIFFWriteScanline</i> returns −1 if it 111immediately detects an error and 1 for a successful 112write.</p> 113</td> 114</table> 115<a name="DIAGNOSTICS"></a> 116<h2>DIAGNOSTICS</h2> 117<!-- INDENTATION --> 118<table width="100%" border=0 rules="none" frame="void" 119 cols="2" cellspacing="0" cellpadding="0"> 120<tr valign="top" align="left"> 121<td width="8%"></td> 122<td width="91%"> 123<p>All error messages are directed to the 124<i>TIFFError</i>(3TIFF) routine.</p> 125<!-- INDENTATION --> 126<p><b>%s: File not open for writing .</b> The file was 127opened for reading, not writing.</p> 128<!-- INDENTATION --> 129<p><b>Can not write scanlines to a tiled image</b>. An 130attempt was made to write a scanline to a tiled image. The 131image is assumed to be organized in tiles because the 132<i>TileWidth</i> and <i>TileLength</i> tags have been set 133with <i>TIFFSetField</i>(3TIFF).</p> 134<!-- INDENTATION --> 135<p><b>Compression algorithm does not support random 136access</b>. Data was written in a non-sequential order to a 137file that uses a compression algorithm and that has 138<i>RowsPerStrip</i> greater than one. That is, data in the 139image is to be stored in a compressed form, and with 140multiple rows packed into a strip. In this case, the library 141does not support random access to the data. The data should 142either be written as entire strips, sequentially by rows, or 143the value of <i>RowsPerStrip</i> should be set to one.</p> 144<!-- INDENTATION --> 145<p><b>%s: Must set "ImageWidth" before writing 146data</b>. The image’s width has not be set before the 147first write. See <b>TIFFSetField</b>(3TIFF) for information 148on how to do this.</p> 149<!-- INDENTATION --> 150<p><b>%s: Must set "PlanarConfiguration" before 151writing data</b>. The organization of data has not be 152defined before the first write. See 153<b>TIFFSetField</b>(3TIFF) for information on how to do 154this.</p> 155<!-- INDENTATION --> 156<p><b>Can not change "ImageLength" when using 157separate planes</b>. Separate image planes are being used 158(<i>PlanarConfiguration</i>=2), but the number of rows has 159not been specified before the first write. The library 160supports the dynamic growth of an image only when data are 161organized in a contiguous manner 162(<i>PlanarConfiguration</i>=1).</p> 163<!-- INDENTATION --> 164<p><b>%d: Sample out of range, max %d</b>. The <i>sample</i> 165parameter was greater than the value of the SamplesPerPixel 166tag.</p> 167<!-- INDENTATION --> 168<p><b>%s: No space for strip arrays .</b> There was not 169enough space for the arrays that hold strip offsets and byte 170counts.</p> 171</td> 172</table> 173<a name="BUGS"></a> 174<h2>BUGS</h2> 175<!-- INDENTATION --> 176<table width="100%" border=0 rules="none" frame="void" 177 cols="2" cellspacing="0" cellpadding="0"> 178<tr valign="top" align="left"> 179<td width="8%"></td> 180<td width="91%"> 181<p>Writing subsampled YCbCR data does not work correctly 182because, for <i>PlanarConfiguration</i>=2 the size of a 183scanline is not calculated on a per-sample basis, and for 184<i>PlanarConfiguration</i>=1 the library does not pack the 185block-interleaved samples.</p> 186</td> 187</table> 188<a name="SEE ALSO"></a> 189<h2>SEE ALSO</h2> 190<!-- INDENTATION --> 191<table width="100%" border=0 rules="none" frame="void" 192 cols="2" cellspacing="0" cellpadding="0"> 193<tr valign="top" align="left"> 194<td width="8%"></td> 195<td width="91%"> 196<p><b>TIFFOpen</b>(3TIFF), 197<b>TIFFWriteEncodedStrip</b>(3TIFF), 198<b>TIFFWriteRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> 199<!-- INDENTATION --> 200<p>Libtiff library home page: 201<b>http://www.simplesystems.org/libtiff/</b></p> 202</td> 203</table> 204<hr> 205</body> 206</html> 207