TIFFGetField(3tiff)


NAME

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

SYNOPSIS

   #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)

DESCRIPTION

   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 values.

   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_CONSECUTIVEBADFAXLINES  1      uint32*
   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*,uint32**  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 returned.
    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.

AUTOREGISTERED TAGS

   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 code:

          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);

RETURN VALUES

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

DIAGNOSTICS

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

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

SEE ALSO

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

   Libtiff library home page: http://www.simplesystems.org/libtiff/





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.