1 .\" $Id: TIFFSetField.3tiff,v 1.4 2006/01/02 23:50:44 bfriesen Exp $
 
   3 .\" Copyright (c) 1988-1997 Sam Leffler
 
   4 .\" Copyright (c) 1991-1997 Silicon Graphics, Inc.
 
   6 .\" Permission to use, copy, modify, distribute, and sell this software and 
 
   7 .\" its documentation for any purpose is hereby granted without fee, provided
 
   8 .\" that (i) the above copyright notices and this permission notice appear in
 
   9 .\" all copies of the software and related documentation, and (ii) the names of
 
  10 .\" Sam Leffler and Silicon Graphics may not be used in any advertising or
 
  11 .\" publicity relating to the software without the specific, prior written
 
  12 .\" permission of Sam Leffler and Silicon Graphics.
 
  14 .\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
 
  15 .\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
 
  16 .\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
 
  18 .\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
 
  19 .\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
 
  20 .\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 
  21 .\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
 
  22 .\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
 
  26 .TH TIFFSetField 3TIFF "October 29, 2004" "libtiff"
 
  28 TIFFSetField, TIFFVSetField \- set the value(s) of a tag in a
 
  32 .B "#include <tiffio.h>"
 
  34 .BI "int TIFFSetField(TIFF *" tif ", ttag_t " tag ", " ... ")"
 
  36 .B "#include <stdarg.h>"
 
  38 .BI "int TIFFVSetField(TIFF *" tif ", ttag_t " tag ", va_list " ap ")"
 
  41 sets the value of a field
 
  42 or pseudo-tag in the current directory associated with
 
  49 is a parameter that is used to control the operation of the
 
  51 library but whose value is not read or written to the underlying file.)
 
  52 To set the value of a field
 
  53 the file must have been previously opened for writing with
 
  55 pseudo-tags can be set whether the file was opened for reading
 
  57 The field is identified by
 
  59 one of the values defined in the include file
 
  61 (see also the table below).
 
  62 The actual value is specified using a variable argument list,
 
  66 or, on some machines, the
 
  71 is functionally equivalent to
 
  73 except that it takes a pointer to a variable
 
  76 is useful for writing routines that are layered
 
  77 on top of the functionality provided by
 
  80 The tags understood by
 
  82 the number of parameter values, and the
 
  83 expected types for the parameter values are shown below.
 
  86 is null-terminated string and corresponds to the
 
  90 is an unsigned 16-bit value;
 
  92 is an unsigned 32-bit value;
 
  94 is an array of unsigned 16-bit values.
 
  96 is an array of data values of unspecified type.
 
 100 specification for information on the meaning of each tag.
 
 103 .ta \w'TIFFTAG_CONSECUTIVEBADFAXLINES'u+2n +\w'Count'u+2n +\w'TIFFFaxFillFunc \(dg'u+2n
 
 104 \fITag Name\fP  \fICount\fP     \fITypes\fP     \fINotes\fP
 
 106 TIFFTAG_ARTIST  1       char*
 
 107 TIFFTAG_BADFAXLINES     1       uint32
 
 108 TIFFTAG_BITSPERSAMPLE   1       uint16  \(dg
 
 109 TIFFTAG_CLEANFAXDATA    1       uint16
 
 110 TIFFTAG_COLORMAP        3       uint16* 1<<BitsPerSample arrays
 
 111 TIFFTAG_COMPRESSION     1       uint16  \(dg
 
 112 TIFFTAG_CONSECUTIVEBADFAXLINES  1       uint32
 
 113 TIFFTAG_COPYRIGHT       1       char*
 
 114 TIFFTAG_DATETIME        1       char*
 
 115 TIFFTAG_DOCUMENTNAME    1       char*
 
 116 TIFFTAG_DOTRANGE        2       uint16
 
 117 TIFFTAG_EXTRASAMPLES    2       uint16,uint16*  \(dg count & types array
 
 118 TIFFTAG_FAXFILLFUNC     1       TIFFFaxFillFunc G3/G4 compression pseudo-tag
 
 119 TIFFTAG_FAXMODE 1       int     \(dg G3/G4 compression pseudo-tag
 
 120 TIFFTAG_FILLORDER       1       uint16  \(dg
 
 121 TIFFTAG_GROUP3OPTIONS   1       uint32  \(dg
 
 122 TIFFTAG_GROUP4OPTIONS   1       uint32  \(dg
 
 123 TIFFTAG_HALFTONEHINTS   2       uint16
 
 124 TIFFTAG_HOSTCOMPUTER    1       char*
 
 125 TIFFTAG_ICCPROFILE      2       uint32,void*    count, profile data
 
 126 TIFFTAG_IMAGEDEPTH      1       uint32  \(dg
 
 127 TIFFTAG_IMAGEDESCRIPTION        1       char*
 
 128 TIFFTAG_IMAGELENGTH     1       uint32
 
 129 TIFFTAG_IMAGEWIDTH      1       uint32  \(dg
 
 130 TIFFTAG_INKNAMES        2       uint16, char*
 
 131 TIFFTAG_INKSET  1       uint16  \(dg
 
 132 TIFFTAG_JPEGCOLORMODE   1       int     \(dg JPEG pseudo-tag
 
 133 TIFFTAG_JPEGQUALITY     1       int     JPEG pseudo-tag
 
 134 TIFFTAG_JPEGTABLES      2       uint32*,void*   \(dg count & tables
 
 135 TIFFTAG_JPEGTABLESMODE  1       int     \(dg JPEG pseudo-tag
 
 137 TIFFTAG_MATTEING        1       uint16  \(dg
 
 138 TIFFTAG_MAXSAMPLEVALUE  1       uint16
 
 139 TIFFTAG_MINSAMPLEVALUE  1       uint16
 
 140 TIFFTAG_MODEL   1       char*
 
 141 TIFFTAG_ORIENTATION     1       uint16
 
 142 TIFFTAG_PAGENAME        1       char*
 
 143 TIFFTAG_PAGENUMBER      2       uint16
 
 144 TIFFTAG_PHOTOMETRIC     1       uint16
 
 145 TIFFTAG_PHOTOSHOP       ?       uint32,void*    count, data
 
 146 TIFFTAG_PLANARCONFIG    1       uint16  \(dg
 
 147 TIFFTAG_PREDICTOR       1       uint16  \(dg
 
 148 TIFFTAG_PRIMARYCHROMATICITIES   1       float*  6-entry array
 
 149 TIFFTAG_REFERENCEBLACKWHITE     1       float*  \(dg 2*SamplesPerPixel array
 
 150 TIFFTAG_RESOLUTIONUNIT  1       uint16
 
 151 TIFFTAG_RICHTIFFIPTC    2       uint32,void*    count, data
 
 152 TIFFTAG_ROWSPERSTRIP    1       uint32  \(dg must be > 0
 
 153 TIFFTAG_SAMPLEFORMAT    1       uint16  \(dg
 
 154 TIFFTAG_SAMPLESPERPIXEL 1       uint16  \(dg value must be <= 4
 
 155 TIFFTAG_SMAXSAMPLEVALUE 1       double
 
 156 TIFFTAG_SMINSAMPLEVALUE 1       double
 
 157 TIFFTAG_SOFTWARE        1       char*
 
 158 TIFFTAG_STONITS 1       double  \(dg
 
 159 TIFFTAG_SUBFILETYPE     1       uint32
 
 160 TIFFTAG_SUBIFD  2       uint16,uint32*  count & offsets array
 
 161 TIFFTAG_TARGETPRINTER   1       char*
 
 162 TIFFTAG_THRESHHOLDING   1       uint16
 
 163 TIFFTAG_TILEDEPTH       1       uint32  \(dg
 
 164 TIFFTAG_TILELENGTH      1       uint32  \(dg must be a multiple of 8
 
 165 TIFFTAG_TILEWIDTH       1       uint32  \(dg must be a multiple of 8
 
 166 TIFFTAG_TRANSFERFUNCTION        1 or 3\(dd uint16*      1<<BitsPerSample entry arrays
 
 167 TIFFTAG_WHITEPOINT      1       float*  2-entry array
 
 168 TIFFTAG_XMLPACKET       2       uint32,void*    count, data
 
 169 TIFFTAG_XPOSITION       1       float
 
 170 TIFFTAG_XRESOLUTION     1       float
 
 171 TIFFTAG_YCBCRCOEFFICIENTS       1       float*  \(dg 3-entry array
 
 172 TIFFTAG_YCBCRPOSITIONING        1       uint16  \(dg
 
 173 TIFFTAG_YCBCRSAMPLING   2       uint16  \(dg
 
 174 TIFFTAG_YPOSITION       1       float
 
 175 TIFFTAG_YRESOLUTION     1       float
 
 178 \(dg Tag may not have its values changed once data is written.
 
 184 is one, then a single array is passed; otherwise three arrays should be
 
 187 * The contents of this field are quite complex.  See 
 
 188 .BR "The ICC Profile Format Specification" ,
 
 189 Annex B.3 "Embedding ICC Profiles in TIFF Files"
 
 190 (available at http://www.color.org) for an explanation.
 
 193 1 is returned if the operation was successful.
 
 194 Otherwise, 0 is returned if an error was detected.
 
 196 All error messages are directed to the
 
 197 .BR TIFFError (3TIFF)
 
 200 \fB%s: Cannot modify tag "%s" while writing\fP.
 
 201 Data has already been written to the file, so the
 
 202 specified tag's value can not be changed.
 
 203 This restriction is applied to all tags that affect
 
 204 the format of written data.
 
 206 \fB%d: Bad value for "%s"\fP.
 
 207 An invalid value was supplied for the named tag.
 
 209 .BR TIFFOpen (3TIFF),
 
 210 .BR TIFFGetField (3TIFF),
 
 211 .BR TIFFSetDirectory (3TIFF),
 
 212 .BR TIFFWriteDirectory (3TIFF),
 
 213 .BR TIFFReadDirectory (3TIFF),
 
 216 Libtiff library home page:
 
 217 .BR http://www.remotesensing.org/libtiff/