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