Provided by: libtiff-dev_4.5.1+git230720-4ubuntu2_amd64 bug

NAME

       TIFFSetField - set the value(s) of a tag in a TIFF file open for writing

SYNOPSIS

          #include <tiffio.h>
          #include <stdarg.h>"

       int TIFFSetField(TIFF *tif, ttag_t tag, ...)

       int TIFFVSetField(TIFF *tif, ttag_t tag, va_list ap)

       int TIFFUnsetField(TIFF *tif, uint32_t tag)

DESCRIPTION

       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  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
       tiff.h  (see  also  the  table  below).   The  actual  value is specified using a variable
       argument list, as prescribed by the stdarg.h interface.

       TIFFVSetField() is functionally equivalent  to  TIFFSetField()  except  that  it  takes  a
       pointer  to a variable argument list.  TIFFVSetField() is useful for writing routines that
       are layered on top of the functionality provided by TIFFSetField().

       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 libtiff, the number of parameter values, and the expected types for
       the parameter values are shown below.  The data types are:

TAG DATA TYPES

                             ┌──────────┬──────────────────────────────────┐
                             │Type      │ Description                      │
                             ├──────────┼──────────────────────────────────┤
                             │char*     │ a     null-terminated     string │
                             │          │ corresponding  to the ASCII data │
                             │          │ type                             │
                             ├──────────┼──────────────────────────────────┤
                             │uint16_t  │ an unsigned 16-bit value         │
                             ├──────────┼──────────────────────────────────┤
                             │uint32_t  │ an unsigned 32-bit value;        │
                             ├──────────┼──────────────────────────────────┤
                             │uint16_t* │ an  array  of  unsigned   16-bit │
                             │          │ values.                          │
                             ├──────────┼──────────────────────────────────┤
                             │void*     │ an   array  of  data  values  of │
                             │          │ unspecified type.                │
                             └──────────┴──────────────────────────────────┘

       Consult the TIFF specification for information on the meaning of each tag.

TAG PROPERTIES

         ┌───────────────────────────────┬─────────┬─────────────────────┬─────────────────────┐
         │Tag name                       │ Count   │ Types               │ Notes               │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_ARTIST                 │ 1       │ char*               │                     │
         └───────────────────────────────┴─────────┴─────────────────────┴─────────────────────┘

         │TIFFTAG_BADFAXLINES            │ 1       │ uint32_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_BITSPERSAMPLE          │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_CLEANFAXDATA           │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_COLORMAP               │ 3       │ uint16_t*           │ 1  << BitsPerSample │
         │                               │         │                     │ arrays              │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_COMPRESSION            │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_CONSECUTIVEBADFAXLINES │ 1       │ uint32_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_COPYRIGHT              │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_DATETIME               │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_DOCUMENTNAME           │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_DOTRANGE               │ 2       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_EXTRASAMPLES           │ 2       │ uint16_t, uint16_t* │ †    count,   types │
         │                               │         │                     │ array               │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_FAXFILLFUNC            │ 1       │ TIFFFaxFillFunc     │ G3/G4   compression │
         │                               │         │                     │ pseudo-tag          │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_FAXMODE                │ 1       │ int                 │ † G3/G4 compression │
         │                               │         │                     │ pseudo-tag          │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_FILLORDER              │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_GROUP3OPTIONS          │ 1       │ uint32_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_GROUP4OPTIONS          │ 1       │ uint32_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_HALFTONEHINTS          │ 2       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_HOSTCOMPUTER           │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_ICCPROFILE             │ 2       │ uint32_t, void*     │ count,      profile │
         │                               │         │                     │ data*               │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_IMAGEDEPTH             │ 1       │ uint32_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_IMAGEDESCRIPTION       │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_IMAGELENGTH            │ 1       │ uint32_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_IMAGEWIDTH             │ 1       │ uint32_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_INKNAMES               │ 2       │ uint16_t, char*     │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_INKSET                 │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_JPEGCOLORMODE          │ 1       │ int                 │ † JPEG pseudo-tag   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_JPEGQUALITY            │ 1       │ int                 │ JPEG pseudo-tag     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_JPEGTABLES             │ 2       │ uint32_t*, void*    │ † count, tables     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_JPEGTABLESMODE         │ 1       │ int                 │ † JPEG pseudo-tag   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_MAKE                   │ 1       │ char*               │                     │
         └───────────────────────────────┴─────────┴─────────────────────┴─────────────────────┘

         │TIFFTAG_MATTEING               │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_MAXSAMPLEVALUE         │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_MINSAMPLEVALUE         │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_MODEL                  │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_ORIENTATION            │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PAGENAME               │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PAGENUMBER             │ 2       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PHOTOMETRIC            │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PHOTOSHOP              │ ?       │ uint32_t, void*     │ count, data         │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PLANARCONFIG           │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PREDICTOR              │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_PRIMARYCHROMATICITIES  │ 1       │ float*              │ 6-entry array       │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_REFERENCEBLACKWHITE    │ 1       │ float*              │ † 6-entry array     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_RESOLUTIONUNIT         │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_RICHTIFFIPTC           │ 2       │ uint32_t, void*     │ count, data         │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_ROWSPERSTRIP           │ 1       │ uint32_t            │ † must be > 0       │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SAMPLEFORMAT           │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SAMPLESPERPIXEL        │ 1       │ uint16_t            │ † value must be ≤ 4 │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SMAXSAMPLEVALUE        │ 1       │ double              │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SMINSAMPLEVALUE        │ 1       │ double              │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SOFTWARE               │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_STONITS                │ 1       │ double              │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SUBFILETYPE            │ 1       │ uint32_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_SUBIFD                 │ 2       │ uint16_t, uint64_t* │ count,      offsets │
         │                               │         │                     │ array               │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_TARGETPRINTER          │ 1       │ char*               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_THRESHHOLDING          │ 1       │ uint16_t            │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_TILEDEPTH              │ 1       │ uint32_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_TILELENGTH             │ 1       │ uint32_t            │ †   must    be    a │
         │                               │         │                     │ multiple of 8       │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_TILEWIDTH              │ 1       │ uint32_t            │ †    must    be   a │
         │                               │         │                     │ multiple of 8       │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_TRANSFERFUNCTION       │ 1 or 3‡ │ uint16_t*           │ 1 <<  BitsPerSample │
         │                               │         │                     │ entry arrays        │
         └───────────────────────────────┴─────────┴─────────────────────┴─────────────────────┘

         │TIFFTAG_WHITEPOINT             │ 1       │ float*              │ 2-entry array       │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_XMLPACKET              │ 2       │ uint32_t, void*     │ count, data         │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_XPOSITION              │ 1       │ float               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_XRESOLUTION            │ 1       │ float               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_YCBCRCOEFFICIENTS      │ 1       │ float*              │ † 3-entry array     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_YCBCRPOSITIONING       │ 1       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_YCBCRSAMPLING          │ 2       │ uint16_t            │ †                   │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_YPOSITION              │ 1       │ float               │                     │
         ├───────────────────────────────┼─────────┼─────────────────────┼─────────────────────┤
         │TIFFTAG_YRESOLUTION            │ 1       │ float               │                     │
         └───────────────────────────────┴─────────┴─────────────────────┴─────────────────────┘

       †:     Tag may not have its values changed once data is written.

       ‡:
          If SamplesPerPixel is one, then a single array is passed; otherwise three arrays should
          be passed.

       *:     The contents of this  field  are  quite  complex.   See  "The  ICC  Profile  Format
              Specification",  Annex  B.3  "Embedding  ICC  Profiles in TIFF Files" (available at
              http://www.color.org) for an explanation.

RETURN VALUES

       1 is returned if the operation was successful.  Otherwise, 0 is returned if an  error  was
       detected.

DIAGNOSTICS

       All error messages are directed to the TIFFErrorExtR() routine.

       %s: Cannot modify tag "%s" while writing:
          Data  has  already  been  written  to the file, so the specified tag's value can not be
          changed.  This restriction is applied to all tags that affect  the  format  of  written
          data.

       %d: Bad value for "%s":
          An invalid value was supplied for the named tag.

SEE ALSO

       TIFFOpen  (3tiff),  TIFFGetField  (3tiff),  TIFFSetDirectory  (3tiff),  TIFFWriteDirectory
       (3tiff), TIFFReadDirectory (3tiff), libtiff (3tiff)

AUTHOR

       LibTIFF contributors

COPYRIGHT

       1988-2024, LibTIFF contributors