summaryrefslogtreecommitdiff
path: root/doc/functions/TIFFWriteEncodedStrip.rst
blob: 24fe8d8999204645635c6bfbc5df27ec5ed2e0ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
TIFFWriteEncodedStrip
=====================

Synopsis
--------

.. highlight:: c

::

    #include <tiffio.h>

.. c:function:: tsize_t TIFFWriteEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)

Description
-----------

Compress *size* bytes of raw data from *buf* and write the result to the
specified strip; replacing any previously written data. Note that the
value of *strip* is a "raw strip number".  That is, the caller must take
into account whether or not the data are organized in separate planes
(``PlanarConfiguration`` = 2).

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 strip number must be valid according to the current settings of the
``ImageLength`` and ``RowsPerStrip`` tags.
An image may be dynamically grown by increasing the value of
``ImageLength`` prior to each call to ``TIFFWriteEncodedStrip``.

Return values
-------------

-1 is returned if an error was encountered. Otherwise, the value of
*size* is returned.

Diagnostics
-----------

All error messages are directed to the :c:func:`TIFFErrorExtR` routine.

``%s: File not open for writing``:

  The file was opened for reading, not writing.

``Can not write scanlines to a tiled image``:

  The image is assumed to be organized in tiles because the
  ``TileWidth`` and ``TileLength`` tags have been set with
  :c:func:`TIFFSetField`.

``%s: Must set "ImageWidth" before writing data\fP``:

  The image's width has not be set before the first write. See
  :c:func:`TIFFSetField` 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 :c:func:`TIFFSetField` for information on how to do
  this.

``%s: No space for strip arrays"``:

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

See also
--------

:doc:`TIFFOpen` (3tiff),
:doc:`TIFFWriteScanline` (3tiff),
:doc:`TIFFWriteRawStrip` (3tiff),
:doc:`libtiff` (3tiff)