summaryrefslogtreecommitdiff
path: root/doc/static/man/TIFFReadScanline.3tiff.html
blob: e84a6f451666bde55341b295ef235b91d2fbfe8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!-- Creator     : groff version 1.22.4 -->
<!-- CreationDate: Sat Jun  4 16:23:27 2022 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFReadScanline</title>

</head>
<body>

<h1 align="center">TIFFReadScanline</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">TIFFReadScanline
&minus; read and decode a scanline of data from an open
<small>TIFF</small> file</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFReadScanline(TIFF *</b><i>tif</i><b>, tdata_t</b>
<i>buf</i><b>, uint32_t</b> <i>row</i><b>, tsample_t</b>
<i>sample</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">Read the data
for the specified row into the (user supplied) data buffer
<i>buf</i>. The data are returned decompressed and, in the
native byte- and bit-ordering, but are otherwise packed (see
further below). The buffer must be large enough to hold an
entire scanline of data. Applications should call the
routine <i>TIFFScanlineSize</i> to find out the size (in
bytes) of a scanline buffer. The <i>row</i> parameter is
always used by <i>TIFFReadScanline</i>; the <i>sample</i>
parameter is used only if data are organized in separate
planes (<i>PlanarConfiguration</i>=2).</p>

<h2>NOTES
<a name="NOTES"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">The library
attempts to hide bit- and byte-ordering differences between
the image and the native machine by converting data to the
native machine order. Bit reversal is done if the
<i>FillOrder</i> tag is opposite to the native machine bit
order. 16- and 32-bit samples are automatically byte-swapped
if the file was written with a byte order opposite to the
native machine byte order,</p>

<p style="margin-left:11%; margin-top: 1em">In C++ the
<i>sample</i> parameter defaults to 0.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><i>TIFFReadScanline</i>
returns &minus;1 if it detects an error; otherwise 1 is
returned.</p>

<h2>DIAGNOSTICS
<a name="DIAGNOSTICS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">All error
messages are directed to the <i>TIFFError</i>(3TIFF)
routine.</p>

<p style="margin-left:11%; margin-top: 1em"><b>Compression
algorithm does not support random access</b>. Data was
requested in a non-sequential order from a file that uses a
compression algorithm and that has <i>RowsPerStrip</i>
greater than one. That is, data in the image is stored in a
compressed form, and with multiple rows packed into a strip.
In this case, the library does not support random access to
the data. The data should either be accessed sequentially,
or the file should be converted so that each strip is made
up of one row of data.</p>

<h2>BUGS
<a name="BUGS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">Reading
subsampled YCbCR data does not work correctly because, for
<i>PlanarConfiguration</i>=2 the size of a scanline is not
calculated on a per-sample basis, and for
<i>PlanarConfiguration</i>=1 the library does not unpack the
block-interleaved samples; use the strip- and tile-based
interfaces to read these formats.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFOpen</b>(3TIFF),
<b>TIFFReadEncodedStrip</b>(3TIFF),
<b>TIFFReadRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>