10dcb9ef1SAndrey Kiselev<!-- Creator : groff version 1.18.1 --> 2f14d1a56SAndrey Kiselev<!-- CreationDate: Sat Feb 24 18:37:17 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>TIFFReadScanline</title> 887c5da6fSAndrey Kiselev</head> 987c5da6fSAndrey Kiselev<body> 1087c5da6fSAndrey Kiselev 1187c5da6fSAndrey Kiselev<h1 align=center>TIFFReadScanline</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="#NOTES">NOTES</a><br> 1687c5da6fSAndrey Kiselev<a href="#RETURN VALUES">RETURN VALUES</a><br> 1787c5da6fSAndrey Kiselev<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 1887c5da6fSAndrey Kiselev<a href="#BUGS">BUGS</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>TIFFReadScanline − read and decode a scanline of 310dcb9ef1SAndrey Kiselevdata from an open <small>TIFF</small> file</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>int TIFFReadScanline(TIFF *</b><i>tif</i><b>, 450dcb9ef1SAndrey Kiselevtdata_t</b> <i>buf</i><b>, uint32</b> <i>row</i><b>, 460dcb9ef1SAndrey Kiselevtsample_t</b> <i>sample</i><b>)</b></p> 470dcb9ef1SAndrey Kiselev</td> 480dcb9ef1SAndrey Kiselev</table> 4987c5da6fSAndrey Kiselev<a name="DESCRIPTION"></a> 5087c5da6fSAndrey Kiselev<h2>DESCRIPTION</h2> 510dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 520dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 530dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 540dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 550dcb9ef1SAndrey Kiselev<td width="8%"></td> 560dcb9ef1SAndrey Kiselev<td width="91%"> 570dcb9ef1SAndrey Kiselev<p>Read the data for the specified row into the (user 580dcb9ef1SAndrey Kiselevsupplied) data buffer <i>buf</i>. The data are returned 590dcb9ef1SAndrey Kiselevdecompressed and, in the native byte- and bit-ordering, but 600dcb9ef1SAndrey Kiselevare otherwise packed (see further below). The buffer must be 610dcb9ef1SAndrey Kiselevlarge enough to hold an entire scanline of data. 620dcb9ef1SAndrey KiselevApplications should call the routine <i>TIFFScanlineSize</i> 630dcb9ef1SAndrey Kiselevto find out the size (in bytes) of a scanline buffer. The 640dcb9ef1SAndrey Kiselev<i>row</i> parameter is always used by 650dcb9ef1SAndrey Kiselev<i>TIFFReadScanline</i>; the <i>sample</i> parameter is used 660dcb9ef1SAndrey Kiselevonly if data are organized in separate planes 670dcb9ef1SAndrey Kiselev(<i>PlanarConfiguration</i>=2).</p> 680dcb9ef1SAndrey Kiselev</td> 690dcb9ef1SAndrey Kiselev</table> 7087c5da6fSAndrey Kiselev<a name="NOTES"></a> 7187c5da6fSAndrey Kiselev<h2>NOTES</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>The library attempts to hide bit- and byte-ordering 790dcb9ef1SAndrey Kiselevdifferences between the image and the native machine by 800dcb9ef1SAndrey Kiselevconverting data to the native machine order. Bit reversal is 810dcb9ef1SAndrey Kiselevdone if the <i>FillOrder</i> tag is opposite to the native 820dcb9ef1SAndrey Kiselevmachine bit order. 16- and 32-bit samples are automatically 830dcb9ef1SAndrey Kiselevbyte-swapped if the file was written with a byte order 840dcb9ef1SAndrey Kiselevopposite to the native machine byte order,</p> 850dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 860dcb9ef1SAndrey Kiselev<p>In C++ the <i>sample</i> parameter defaults to 0.</p> 870dcb9ef1SAndrey Kiselev</td> 880dcb9ef1SAndrey Kiselev</table> 8987c5da6fSAndrey Kiselev<a name="RETURN VALUES"></a> 9087c5da6fSAndrey Kiselev<h2>RETURN VALUES</h2> 910dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 920dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 930dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 940dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 950dcb9ef1SAndrey Kiselev<td width="8%"></td> 960dcb9ef1SAndrey Kiselev<td width="91%"> 970dcb9ef1SAndrey Kiselev<p><i>TIFFReadScanline</i> returns −1 if it detects an 980dcb9ef1SAndrey Kiseleverror; otherwise 1 is returned.</p> 990dcb9ef1SAndrey Kiselev</td> 1000dcb9ef1SAndrey Kiselev</table> 10187c5da6fSAndrey Kiselev<a name="DIAGNOSTICS"></a> 10287c5da6fSAndrey Kiselev<h2>DIAGNOSTICS</h2> 1030dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1040dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1050dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1060dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1070dcb9ef1SAndrey Kiselev<td width="8%"></td> 1080dcb9ef1SAndrey Kiselev<td width="91%"> 1090dcb9ef1SAndrey Kiselev<p>All error messages are directed to the 1100dcb9ef1SAndrey Kiselev<i>TIFFError</i>(3TIFF) routine.</p> 1110dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1120dcb9ef1SAndrey Kiselev<p><b>Compression algorithm does not support random 1130dcb9ef1SAndrey Kiselevaccess</b>. Data was requested in a non-sequential order 1140dcb9ef1SAndrey Kiselevfrom a file that uses a compression algorithm and that has 1150dcb9ef1SAndrey Kiselev<i>RowsPerStrip</i> greater than one. That is, data in the 1160dcb9ef1SAndrey Kiselevimage is stored in a compressed form, and with multiple rows 1170dcb9ef1SAndrey Kiselevpacked into a strip. In this case, the library does not 1180dcb9ef1SAndrey Kiselevsupport random access to the data. The data should either be 1190dcb9ef1SAndrey Kiselevaccessed sequentially, or the file should be converted so 1200dcb9ef1SAndrey Kiselevthat each strip is made up of one row of data.</p> 1210dcb9ef1SAndrey Kiselev</td> 1220dcb9ef1SAndrey Kiselev</table> 12387c5da6fSAndrey Kiselev<a name="BUGS"></a> 12487c5da6fSAndrey Kiselev<h2>BUGS</h2> 1250dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1260dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1270dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1280dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1290dcb9ef1SAndrey Kiselev<td width="8%"></td> 1300dcb9ef1SAndrey Kiselev<td width="91%"> 1310dcb9ef1SAndrey Kiselev<p>Reading subsampled YCbCR data does not work correctly 1320dcb9ef1SAndrey Kiselevbecause, for <i>PlanarConfiguration</i>=2 the size of a 1330dcb9ef1SAndrey Kiselevscanline is not calculated on a per-sample basis, and for 13487c5da6fSAndrey Kiselev<i>PlanarConfiguration</i>=1 the library does not unpack the 13587c5da6fSAndrey Kiselevblock-interleaved samples; use the strip- and tile-based 13687c5da6fSAndrey Kiselevinterfaces to read these formats.</p> 1370dcb9ef1SAndrey Kiselev</td> 1380dcb9ef1SAndrey Kiselev</table> 13987c5da6fSAndrey Kiselev<a name="SEE ALSO"></a> 14087c5da6fSAndrey Kiselev<h2>SEE ALSO</h2> 1410dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1420dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1430dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1440dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1450dcb9ef1SAndrey Kiselev<td width="8%"></td> 1460dcb9ef1SAndrey Kiselev<td width="91%"> 1470dcb9ef1SAndrey Kiselev<p><b>TIFFOpen</b>(3TIFF), 1480776b32dSAndrey Kiselev<b>TIFFReadEncodedStrip</b>(3TIFF), 1490776b32dSAndrey Kiselev<b>TIFFReadRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> 1500dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1510dcb9ef1SAndrey Kiselev<p>Libtiff library home page: 152*d4dd6cccSBob Friesenhahn<b>http://www.simplesystems.org/libtiff/</b></p> 1530dcb9ef1SAndrey Kiselev</td> 1540dcb9ef1SAndrey Kiselev</table> 15587c5da6fSAndrey Kiselev<hr> 15687c5da6fSAndrey Kiselev</body> 15787c5da6fSAndrey Kiselev</html> 158