Provided by: libtiff5-dev_4.0.9-5_amd64 bug


       TIFFGetField, TIFFVGetField - get the value(s) of a tag in an open TIFF file


       #include <tiffio.h>

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

       #include <stdarg.h>

       int TIFFVGetField(TIFF *tif, ttag_t tag, va_list ap)
       int TIFFGetFieldDefaulted(TIFF *tif, ttag_t tag, ...)
       int TIFFVGetFieldDefaulted(TIFF *tif, ttag_t tag, va_list ap)


       TIFFGetField  returns  the  value  of  a tag or pseudo-tag associated with the the current
       directory of the opened 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.) The file must have been previously opened with TIFFOpen(3TIFF).  The tag
       is  identified  by tag, one of the values defined in the include file tiff.h (see also the
       table below). The type and number of  values  returned  is  dependent  on  the  tag  being
       requested.  The  programming  interface uses a variable argument list as prescribed by the
       stdarg(3) interface. The returned  values  should  only  be  interpreted  if  TIFFGetField
       returns 1.

       TIFFVGetField is functionally equivalent to TIFFGetField except that it takes a pointer to
       a variable argument list.  TIFFVGetField is useful for layering interfaces on top  of  the
       functionality provided by TIFFGetField.

       TIFFGetFieldDefaulted   and  TIFFVGetFieldDefaulted  are  identical  to  TIFFGetField  and
       TIFFVGetField, except that if a tag is not defined in the current directory and it  has  a
       default value, then the default value is returned.

       The  tags  understood by libtiff(3TIFF), the number of parameter values, and the types for
       the returned values are shown below. The data types are specified as in C  and  correspond
       to   the  types  used  to  specify  tag  values  to  TIFFSetField(3TIFF).   Remember  that
       TIFFGetField returns parameter values, so all  the  listed  data  types  are  pointers  to
       storage  where  values  should  be  returned.  Consult the TIFF specification (or relevant
       industry specification) for information on the meaning of  each  tag  and  their  possible

       Tag Name                        Count  Types             Notes
       TIFFTAG_ARTIST                  1      char**
       TIFFTAG_BADFAXLINES             1      uint32*
       TIFFTAG_BITSPERSAMPLE           1      uint16*
       TIFFTAG_CLEANFAXDATA            1      uint16*
       TIFFTAG_COLORMAP                3      uint16**          1<<BitsPerSample arrays
       TIFFTAG_COMPRESSION             1      uint16*
       TIFFTAG_COPYRIGHT               1      char**
       TIFFTAG_DATATYPE                1      uint16*
       TIFFTAG_DATETIME                1      char**
       TIFFTAG_DOCUMENTNAME            1      char**
       TIFFTAG_DOTRANGE                2      uint16*
       TIFFTAG_EXTRASAMPLES            2      uint16*,uint16**  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*
       TIFFTAG_GROUP3OPTIONS           1      uint32*
       TIFFTAG_GROUP4OPTIONS           1      uint32*
       TIFFTAG_HALFTONEHINTS           2      uint16*
       TIFFTAG_HOSTCOMPUTER            1      char**
       TIFFTAG_ICCPROFILE              2      uint32*,void**    count, profile data
       TIFFTAG_IMAGEDEPTH              1      uint32*
       TIFFTAG_IMAGEDESCRIPTION        1      char**
       TIFFTAG_IMAGELENGTH             1      uint32*
       TIFFTAG_IMAGEWIDTH              1      uint32*
       TIFFTAG_INKNAMES                1      char**
       TIFFTAG_INKSET                  1      uint16*
       TIFFTAG_JPEGCOLORMODE           1      int*              JPEG pseudo-tag
       TIFFTAG_JPEGQUALITY             1      int*              JPEG pseudo-tag
       TIFFTAG_JPEGTABLES              2      uint32*,void**    count & tables
       TIFFTAG_JPEGTABLESMODE          1      int*              JPEG pseudo-tag
       TIFFTAG_MAKE                    1      char**
       TIFFTAG_MATTEING                1      uint16*
       TIFFTAG_MAXSAMPLEVALUE          1      uint16*
       TIFFTAG_MINSAMPLEVALUE          1      uint16*
       TIFFTAG_MODEL                   1      char**
       TIFFTAG_ORIENTATION             1      uint16*
       TIFFTAG_PAGENAME                1      char**
       TIFFTAG_PAGENUMBER              2      uint16*
       TIFFTAG_PHOTOMETRIC             1      uint16*
       TIFFTAG_PHOTOSHOP               2      uint32*,void**    count, data
       TIFFTAG_PLANARCONFIG            1      uint16*
       TIFFTAG_PREDICTOR               1      uint16*
       TIFFTAG_PRIMARYCHROMATICITIES   1      float**           6-entry array
       TIFFTAG_REFERENCEBLACKWHITE     1      float**           6-entry array
       TIFFTAG_RESOLUTIONUNIT          1      uint16*
       TIFFTAG_RICHTIFFIPTC            2      uint32*,void**    count, data
       TIFFTAG_ROWSPERSTRIP            1      uint32*
       TIFFTAG_SAMPLEFORMAT            1      uint16*
       TIFFTAG_SAMPLESPERPIXEL         1      uint16*
       TIFFTAG_SMAXSAMPLEVALUE         1      double*
       TIFFTAG_SMINSAMPLEVALUE         1      double*
       TIFFTAG_SOFTWARE                1      char**
       TIFFTAG_STONITS                 1      double**
       TIFFTAG_STRIPBYTECOUNTS         1      uint32**
       TIFFTAG_STRIPOFFSETS            1      uint32**
       TIFFTAG_SUBFILETYPE             1      uint32*
       TIFFTAG_SUBIFD                  2      uint16*,uint64**  count & offsets array
       TIFFTAG_TARGETPRINTER           1      char**
       TIFFTAG_THRESHHOLDING           1      uint16*
       TIFFTAG_TILEBYTECOUNTS          1      uint32**
       TIFFTAG_TILEDEPTH               1      uint32*
       TIFFTAG_TILELENGTH              1      uint32*
       TIFFTAG_TILEOFFSETS             1      uint32**
       TIFFTAG_TILEWIDTH               1      uint32*
       TIFFTAG_TRANSFERFUNCTION        1 or 3†                  uint16**1<<BitsPerSample entry arrays
       TIFFTAG_WHITEPOINT              1      float**           2-entry array
       TIFFTAG_XMLPACKET               2      uint32*,void**    count, data
       TIFFTAG_XPOSITION               1      float*
       TIFFTAG_XRESOLUTION             1      float*
       TIFFTAG_YCBCRCOEFFICIENTS       1      float**           3-entry array
       TIFFTAG_YCBCRPOSITIONING        1      uint16*
       TIFFTAG_YCBCRSUBSAMPLING        2      uint16*
       TIFFTAG_YPOSITION               1      float*
       TIFFTAG_YRESOLUTION             1      float*‡
       †  If  SamplesPerPixel is one, then a single array is returned; otherwise three arrays are
       ‡ 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 for
       an explanation.


       If you can't find the tag in the table above that means this is an unsupported tag and  is
       not  directly  supported  by  libtiff(3TIFF)  library. You will still be able to read it's
       value if you know the data type of that tag. For example, if you want  to  read  the  LONG
       value  from  the  tag  33424 and ASCII string from the tag 36867 you can use the following

              uint32  count;
              void    *data;

              TIFFGetField(tiff, 33424, &count, &data);
              printf("Tag %d: %d, count %d0, 33424, *(uint32 *)data, count);
              TIFFGetField(tiff, 36867, &count, &data);
              printf("Tag %d: %s, count %d0, 36867, (char *)data, count);


       1 is returned if the tag is defined in the current directory; otherwise a 0 is returned.


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

       Unknown field, tag 0x%x.  An unknown tag was supplied.


       TIFFOpen(3TIFF), TIFFSetField(3TIFF),  TIFFSetDirectory(3TIFF),  TIFFReadDirectory(3TIFF),
       TIFFWriteDirectory(3TIFF) libtiff(3TIFF),

       Libtiff library home page: