libtiff/html/man/TIFFWriteScanline.3t.html
1999-11-23 04:29:23 +00:00

226 lines
5.7 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML><HEAD><TITLE>Manpage of TIFFWriteScanline</TITLE>
</HEAD><BODY BGCOLOR=WHITE><FONT FACE="helvetica, sans, arial">
<H1>TIFFWriteScanline</H1>
Section: Misc. Reference Manual Pages (3T)<BR>Updated: December 16, 1991<BR><A HREF="#index">Index</A>
<BR><A HREF="index.html">Return to Main Contents</A>
<HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
TIFFWriteScanline - write a scanline to an open
<FONT SIZE="-1">TIFF</FONT>
file
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>#include &lt;<A HREF="file:/usr/include/tiffio.h">tiffio.h</A>&gt;</B>
<BR>
<B>int TIFFWriteScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample)</B>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
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
<FONT SIZE="-1">TIFF</FONT>
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.
<A NAME="lbAE">&nbsp;</A>
<H2>NOTES</H2>
The library writes encoded data using the native machine byte order.
Correctly implemented
<FONT SIZE="-1">TIFF</FONT>
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>
In C++ the
<I>sample</I>
parameter defaults to 0.
<P>
Once data are written to a file for the current directory,
the values of certain tags may not be altered; see
<I><A HREF="TIFFSetField.3t.html">TIFFSetField</A></I>(3T)
for more information.
<P>
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.
<A NAME="lbAF">&nbsp;</A>
<H2>RETURN VALUES</H2>
<I>TIFFWriteScanline</I>
returns -1 if it immediately detects an error
and 1 for a successful write.
<A NAME="lbAG">&nbsp;</A>
<H2>DIAGNOSTICS</H2>
All error messages are directed to the
<I><A HREF="TIFFError.3t.html">TIFFError</A></I>(3T)
routine.
<P>
<B>%s: File not open for writing .</B>
The file was opened for reading, not writing.
<P>
<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><A HREF="TIFFSetField.3t.html">TIFFSetField</A></I>(3T).
<P>
<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>
<B>%s: Must set &quot;ImageWidth&quot; before writing data</B>.
The image's width has not be set before the first write.
See
<I><A HREF="TIFFSetField.3t.html">TIFFSetField</A></I>(3T)
for information on how to do this.
<P>
<B>%s: Must set &quot;PlanarConfiguration&quot; before writing data</B>.
The organization of data has not be defined before the first write.
See
<I><A HREF="TIFFSetField.3t.html">TIFFSetField</A></I>(3T)
for information on how to do this.
<P>
<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>
<B>%d: Sample out of range, max %d</B>.
The
<I>sample</I>
parameter was greater than the value of the SamplesPerPixel tag.
<P>
<B>%s: No space for strip arrays .</B>
There was not enough space for the arrays that hold strip
offsets and byte counts.
<A NAME="lbAH">&nbsp;</A>
<H2>BUGS</H2>
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.
<A NAME="lbAI">&nbsp;</A>
<H2>SEE ALSO</H2>
<I><A HREF="libtiff.3t.html">libtiff</A></I>(3T),
<I><A HREF="TIFFOpen.3t.html">TIFFOpen</A></I>(3T),
<I><A HREF="TIFFWriteEncodedStrip.3t.html">TIFFWriteEncodedStrip</A></I>(3T),
<I><A HREF="TIFFWriteRawStrip.3t.html">TIFFWriteRawStrip</A></I>(3T)
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT><A HREF="#lbAE">NOTES</A><DD>
<DT><A HREF="#lbAF">RETURN VALUES</A><DD>
<DT><A HREF="#lbAG">DIAGNOSTICS</A><DD>
<DT><A HREF="#lbAH">BUGS</A><DD>
<DT><A HREF="#lbAI">SEE ALSO</A><DD>
</DL>
<HR>
This document was created by
<A HREF="index.html">man2html</A>,
using the manual pages.<BR>
Time: 01:31:39 GMT, November 23, 1999
</BODY>
</HTML>