File Manager

Current Directory: /usr/share/doc/libtiff-devel/html/man
Viewing File: /usr/share/doc/libtiff-devel/html/man/TIFFWriteScanline.3tiff.html
<!-- Creator : groff version 1.22.4 --> <!-- CreationDate: Sun Nov 2 19:00:00 2025 --> <!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>TIFFWriteScanline</title> </head> <body> <h1 align="center">TIFFWriteScanline</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">TIFFWriteScanline &minus; write a scanline to 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 TIFFWriteScanline(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">Write data to a file at the specified row. The <i>sample</i> parameter is used only if data are organized in separate planes (<i>PlanarConfiguration</i>=2). The data are assumed to be uncompressed and in the native bit- and byte-order of the host machine. The data written to the file is compressed according to the compression scheme of the current <small>TIFF</small> directory (see further below). If the current scanline is past the end of the current subfile, the <i>ImageLength</i> field is automatically increased to include the scanline (except for <i>PlanarConfiguration</i>=2, where the <i>ImageLength</i> cannot be changed once the first data are written). If the <i>ImageLength</i> is increased, the <i>StripOffsets</i> and <i>StripByteCounts</i> fields are similarly enlarged to reflect data written past the previous end of image.</p> <h2>NOTES <a name="NOTES"></a> </h2> <p style="margin-left:11%; margin-top: 1em">The library writes encoded data using the native machine byte order. Correctly implemented <small>TIFF</small> readers are expected to do any necessary byte-swapping to correctly process image data with BitsPerSample greater than 8. The library attempts to hide bit-ordering differences between the image and the native machine by converting data from the native machine order.</p> <p style="margin-left:11%; margin-top: 1em">In C++ the <i>sample</i> parameter defaults to 0.</p> <p style="margin-left:11%; margin-top: 1em">Once data are written to a file for the current directory, the values of certain tags may not be altered; see <i>TIFFSetField</i>(3TIFF) for more information.</p> <p style="margin-left:11%; margin-top: 1em">It is not possible to write scanlines to a file that uses a tiled organization. The routine <i>TIFFIsTiled</i> can be used to determine if the file is organized as tiles or strips.</p> <h2>RETURN VALUES <a name="RETURN VALUES"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><i>TIFFWriteScanline</i> returns &minus;1 if it immediately detects an error and 1 for a successful write.</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>%s: File not open for writing .</b> The file was opened for reading, not writing.</p> <p style="margin-left:11%; margin-top: 1em"><b>Can not write scanlines to a tiled image</b>. An attempt was made to write a scanline to a tiled image. The image is assumed to be organized in tiles because the <i>TileWidth</i> and <i>TileLength</i> tags have been set with <i>TIFFSetField</i>(3TIFF).</p> <p style="margin-left:11%; margin-top: 1em"><b>Compression algorithm does not support random access</b>. Data was written in a non-sequential order to a file that uses a compression algorithm and that has <i>RowsPerStrip</i> greater than one. That is, data in the image is to be 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 written as entire strips, sequentially by rows, or the value of <i>RowsPerStrip</i> should be set to one.</p> <p style="margin-left:11%; margin-top: 1em"><b>%s: Must set &quot;ImageWidth&quot; before writing data</b>. The image&rsquo;s width has not be set before the first write. See <b>TIFFSetField</b>(3TIFF) for information on how to do this.</p> <p style="margin-left:11%; margin-top: 1em"><b>%s: Must set &quot;PlanarConfiguration&quot; before writing data</b>. The organization of data has not be defined before the first write. See <b>TIFFSetField</b>(3TIFF) for information on how to do this.</p> <p style="margin-left:11%; margin-top: 1em"><b>Can not change &quot;ImageLength&quot; when using separate planes</b>. Separate image planes are being used (<i>PlanarConfiguration</i>=2), but the number of rows has not been specified before the first write. The library supports the dynamic growth of an image only when data are organized in a contiguous manner (<i>PlanarConfiguration</i>=1).</p> <p style="margin-left:11%; margin-top: 1em"><b>%d: Sample out of range, max %d</b>. The <i>sample</i> parameter was greater than the value of the SamplesPerPixel tag.</p> <p style="margin-left:11%; margin-top: 1em"><b>%s: No space for strip arrays .</b> There was not enough space for the arrays that hold strip offsets and byte counts.</p> <h2>BUGS <a name="BUGS"></a> </h2> <p style="margin-left:11%; margin-top: 1em">Writing 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 pack the block-interleaved samples.</p> <h2>SEE ALSO <a name="SEE ALSO"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>TIFFOpen</b>(3TIFF), <b>TIFFWriteEncodedStrip</b>(3TIFF), <b>TIFFWriteRawStrip</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>