TIFFWriteScanline

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
TIFFWriteScanline(3T)					TIFFWriteScanline(3T)



NAME
       TIFFWriteScanline - write a scanline to an open TIFF file

SYNOPSIS
       #include <tiffio.h>
       int  TIFFWriteScanline(TIFF*  tif,  tdata_t buf, uint32 row, tsample_t
       sample)

DESCRIPTION
       Write data to a file at the specified row.  The	sample	parameter  is
       used  only  if data are organized in separate planes (PlanarConfigura-
       tion=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	 TIFF
       directory  (see	further	 below).  If the current scanline is past the
       end of the current subfile, the	ImageLength  field  is	automatically
       increased  to  include the scanline (except for PlanarConfiguration=2,
       where the ImageLength cannot be changed once the first data are	writ-
       ten).   If  the	ImageLength is increased, the StripOffsets and Strip-
       ByteCounts fields are similarly enlarged to reflect data written	 past
       the previous end of image.

NOTES
       The  library  writes encoded data using the native machine byte order.
       Correctly implemented TIFF 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.

       In C++ the sample parameter defaults to 0.

       Once data are written to a file for the current directory, the  values
       of  certain  tags  may  not  be altered; see TIFFSetField(3T) for more
       information.

       It is not possible to write scanlines to a  file	 that  uses  a	tiled
       organization.  The routine TIFFIsTiled can be used to determine if the
       file is organized as tiles or strips.

RETURN VALUES
       TIFFWriteScanline returns -1 if it immediately detects an error and  1
       for a successful write.

DIAGNOSTICS
       All error messages are directed to the TIFFError(3T) routine.

       %s:  File not open for writing .	 The file was opened for reading, not
       writing.

       Can not write scanlines to a tiled image.   An  attempt	was  made  to
       write  a	 scanline to a tiled image.  The image is assumed to be orga-
       nized in tiles because the TileWidth and TileLength tags have been set
       with TIFFSetField(3T).

       Compression  algorithm does not support random access.  Data was writ-
       ten in a non-sequential order to a file that uses a compression	algo-
       rithm  and  that	 has RowsPerStrip 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 ran-
       dom access to the data.	The data should either be written  as  entire
       strips,	sequentially  by rows, or the value of RowsPerStrip should be
       set to one.

       %s: Must set "ImageWidth" before writing data.  The image’s width  has
       not  be set before the first write.  See TIFFSetField(3T) for informa-
       tion on how to do this.

       %s: Must set "PlanarConfiguration" before writing data.	The organiza-
       tion  of data has not be defined before the first write.	 See TIFFSet-
       Field(3T) for information on how to do this.

       Can not change "ImageLength" when  using	 separate  planes.   Separate
       image planes are being used (PlanarConfiguration=2), but the number of
       rows has not been specified before the first write.  The library	 sup-
       ports the dynamic growth of an image only when data are organized in a
       contiguous manner (PlanarConfiguration=1).

       %d: Sample out of range, max %d.	 The  sample  parameter	 was  greater
       than the value of the SamplesPerPixel tag.

       %s:  No	space  for strip arrays .  There was not enough space for the
       arrays that hold strip offsets and byte counts.

BUGS
       Writing subsampled YCbCR data does not  work  correctly	because,  for
       PlanarConfiguration=2  the  size	 of a scanline is not calculated on a
       per-sample basis, and for PlanarConfiguration=1 the library  does  not
       pack the block-interleaved samples.

SEE ALSO
       libtiff(3T),  TIFFOpen(3T),  TIFFWriteEncodedStrip(3T),	TIFFWriteRaw-
       Strip(3T)



			      December 16, 1991		TIFFWriteScanline(3T)