TIFFSetField ============ Synopsis -------- .. highlight:: c :: #include #include " .. c:function:: int TIFFSetField(TIFF* tif, ttag_t tag, ...) .. c:function:: int TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap) .. c:function:: int TIFFUnsetField(TIFF* tif, uint32_t tag) Description ----------- :c:func:`TIFFSetField` sets the value of a field or pseudo-tag in the current directory associated with the open TIFF file *tif*. (A *pseudo-tag* is a parameter that is used to control the operation of the TIFF library but whose value is not read or written to the underlying file.) To set the value of a field the file must have been previously opened for writing with :c:func:`TIFFOpen`. Pseudo-tags can be set whether the file was opened for reading or writing. The field is identified by *tag*, one of the values defined in the include file :file:`tiff.h` (see also the table below). The actual value is specified using a variable argument list, as prescribed by the :file:`stdarg.h` interface. :c:func:`TIFFVSetField` is functionally equivalent to :c:func:`TIFFSetField` except that it takes a pointer to a variable argument list. :c:func:`TIFFVSetField` is useful for writing routines that are layered on top of the functionality provided by :c:func:`TIFFSetField`. :c:func:`TIFFUnsetField` clears the contents of the field in the internal structure. If it is a custom field, it is removed from the list of known tags. The tags understood by :program:`libtiff`, the number of parameter values, and the expected types for the parameter values are shown below. The data types are: .. list-table:: Tag data types :widths: 5 15 :header-rows: 1 * - Type - Description * - :c:expr:`char*` - a null-terminated string corresponding to the ``ASCII`` data type * - :c:expr:`uint16_t` - an unsigned 16-bit value * - :c:expr:`uint32_t` - an unsigned 32-bit value; * - :c:expr:`uint16_t*` - an array of unsigned 16-bit values. * - :c:expr:`void*` - an array of data values of unspecified type. Consult the TIFF specification for information on the meaning of each tag. .. list-table:: Tag properties :widths: 5 3 5 10 :header-rows: 1 * - Tag name - Count - Types - Notes * - :c:macro:`TIFFTAG_ARTIST` - 1 - :c:expr:`char*` - * - :c:macro:`TIFFTAG_BADFAXLINES` - 1 - :c:expr:`uint32_t` - * - :c:macro:`TIFFTAG_BITSPERSAMPLE` - 1 - :c:expr:`uint16_t` - † * - :c:macro:`TIFFTAG_CLEANFAXDATA` - 1 - :c:expr:`uint16_t` - * - :c:macro:`TIFFTAG_COLORMAP` - 3 - :c:expr:`uint16_t*` - :c:expr:`1< 0 * - :c:macro:`TIFFTAG_SAMPLEFORMAT` - 1 - :c:expr:`uint16_t` - † * - :c:macro:`TIFFTAG_SAMPLESPERPIXEL` - 1 - :c:expr:`uint16_t` - † value must be ≤ 4 * - :c:macro:`TIFFTAG_SMAXSAMPLEVALUE` - 1 - :c:expr:`double` - * - :c:macro:`TIFFTAG_SMINSAMPLEVALUE` - 1 - :c:expr:`double` - * - :c:macro:`TIFFTAG_SOFTWARE` - 1 - :c:expr:`char*` - * - :c:macro:`TIFFTAG_STONITS` - 1 - :c:expr:`double` - † * - :c:macro:`TIFFTAG_SUBFILETYPE` - 1 - :c:expr:`uint32_t` - * - :c:macro:`TIFFTAG_SUBIFD` - 2 - :c:expr:`uint16_t`, :c:expr:`uint64_t*` - count, offsets array * - :c:macro:`TIFFTAG_TARGETPRINTER` - 1 - :c:expr:`char*` - * - :c:macro:`TIFFTAG_THRESHHOLDING` - 1 - :c:expr:`uint16_t` - * - :c:macro:`TIFFTAG_TILEDEPTH` - 1 - :c:expr:`uint32_t` - † * - :c:macro:`TIFFTAG_TILELENGTH` - 1 - :c:expr:`uint32_t` - † must be a multiple of 8 * - :c:macro:`TIFFTAG_TILEWIDTH` - 1 - :c:expr:`uint32_t` - † must be a multiple of 8 * - :c:macro:`TIFFTAG_TRANSFERFUNCTION` - 1 or 3‡ - :c:expr:`uint16_t*` - :c:expr:`1<