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 &minus; 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 &lt;tiffio.h&gt;</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 &minus;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