TIFFWriteScanline - write a scanline to an open TIFF file

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

     Write data to a file  at  the  specified  row.   The  sample
     parameter  is  used  only  if data are organized in separate
     planes (PlanarConfiguration=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   written).    If   the
     ImageLength   is  increased,  the  StripOffsets  and  Strip-
     ByteCounts fields are similarly  enlarged  to  reflect  data
     written past the previous end of image.

     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.

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

     All error messages are directed to  the  TIFFError(3T)  rou-

Sun Release 4.1  Last change: December 16, 1991                 1


     %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 organized in tiles because the  TileWidth  and
     TileLength tags have been set with TIFFSetField(3T).

     Compression algorithm does not support random access.   Data
     was  written in a non-sequential order to a file that uses a
     compression algorithm 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 random 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 information on how to do this.

     %s: Must set "PlanarConfiguration" before writing data.  The
     organization  of  data  has  not be defined before the first
     write.  See TIFFSetField(3T) for information on  how  to  do

     Can not change "ImageLength"  when  using  separate  planes.
     Separate  image  planes  are  being  used  (PlanarConfigura-
     tion=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  con-
     tiguous 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.

     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  PlanarConfi-
     guration=1  the  library does not pack the block-interleaved

     intro(3T),     TIFFOpen(3T),      TIFFWriteEncodedStrip(3T),

Sun Release 4.1  Last change: December 16, 1991                 2