1TIFFSetField(3TIFF) TIFFSetField(3TIFF)
2
3
4
6 TIFFSetField, TIFFVSetField - set the value(s) of a tag in a TIFF file
7 open for writing
8
10 #include <tiffio.h>
11
12 int TIFFSetField(TIFF *tif, ttag_t tag, ...)
13
14 #include <stdarg.h>
15
16 int TIFFVSetField(TIFF *tif, ttag_t tag, va_list ap)
17
19 TIFFSetField sets the value of a field or pseudo-tag in the current di‐
20 rectory associated with the open TIFF file tif. (A pseudo-tag is a pa‐
21 rameter that is used to control the operation of the TIFF library but
22 whose value is not read or written to the underlying file.) To set the
23 value of a field the file must have been previously opened for writing
24 with TIFFOpen(3TIFF); pseudo-tags can be set whether the file was
25 opened for reading or writing. The field is identified by tag, one of
26 the values defined in the include file tiff.h (see also the table be‐
27 low). The actual value is specified using a variable argument list, as
28 prescribed by the stdarg(3) interface (or, on some machines, the
29 varargs(3) interface.)
30
31 TIFFVSetField is functionally equivalent to TIFFSetField except that it
32 takes a pointer to a variable argument list. TIFFVSetField is useful
33 for writing routines that are layered on top of the functionality pro‐
34 vided by TIFFSetField.
35
36 The tags understood by libtiff, the number of parameter values, and the
37 expected types for the parameter values are shown below. The data
38 types are: char* is null-terminated string and corresponds to the ASCII
39 data type; uint16_t is an unsigned 16-bit value; uint32_t is an un‐
40 signed 32-bit value; uint16_t* is an array of unsigned 16-bit values.
41 void* is an array of data values of unspecified type.
42
43 Consult the TIFF specification for information on the meaning of each
44 tag.
45
46 Tag Name Count Types Notes
47 TIFFTAG_ARTIST 1 char*
48 TIFFTAG_BADFAXLINES 1 uint32_t
49 TIFFTAG_BITSPERSAMPLE 1 uint16_t †
50 TIFFTAG_CLEANFAXDATA 1 uint16_t
51 TIFFTAG_COLORMAP 3 uint16_t* 1<<BitsPerSample arrays
52 TIFFTAG_COMPRESSION 1 uint16_t †
53 TIFFTAG_CONSECUTIVEBADFAXLINES 1 uint32_t
54 TIFFTAG_COPYRIGHT 1 char*
55 TIFFTAG_DATETIME 1 char*
56 TIFFTAG_DOCUMENTNAME 1 char*
57 TIFFTAG_DOTRANGE 2 uint16_t
58 TIFFTAG_EXTRASAMPLES 2 uint16_t,uint16_t* † count & types array
59 TIFFTAG_FAXFILLFUNC 1 TIFFFaxFillFunc G3/G4 compression pseudo-tag
60 TIFFTAG_FAXMODE 1 int † G3/G4 compression pseudo-tag
61 TIFFTAG_FILLORDER 1 uint16_t †
62 TIFFTAG_GROUP3OPTIONS 1 uint32_t †
63 TIFFTAG_GROUP4OPTIONS 1 uint32_t †
64 TIFFTAG_HALFTONEHINTS 2 uint16_t
65 TIFFTAG_HOSTCOMPUTER 1 char*
66 TIFFTAG_ICCPROFILE 2 uint32_t,void* count, profile data
67 TIFFTAG_IMAGEDEPTH 1 uint32_t †
68 TIFFTAG_IMAGEDESCRIPTION 1 char*
69 TIFFTAG_IMAGELENGTH 1 uint32_t
70 TIFFTAG_IMAGEWIDTH 1 uint32_t †
71 TIFFTAG_INKNAMES 2 uint16_t, char*
72 TIFFTAG_INKSET 1 uint16_t †
73 TIFFTAG_JPEGCOLORMODE 1 int † JPEG pseudo-tag
74 TIFFTAG_JPEGQUALITY 1 int JPEG pseudo-tag
75 TIFFTAG_JPEGTABLES 2 uint32_t*,void* † count & tables
76 TIFFTAG_JPEGTABLESMODE 1 int † JPEG pseudo-tag
77 TIFFTAG_MAKE 1 char*
78 TIFFTAG_MATTEING 1 uint16_t †
79 TIFFTAG_MAXSAMPLEVALUE 1 uint16_t
80 TIFFTAG_MINSAMPLEVALUE 1 uint16_t
81 TIFFTAG_MODEL 1 char*
82 TIFFTAG_ORIENTATION 1 uint16_t
83 TIFFTAG_PAGENAME 1 char*
84 TIFFTAG_PAGENUMBER 2 uint16_t
85 TIFFTAG_PHOTOMETRIC 1 uint16_t
86 TIFFTAG_PHOTOSHOP ? uint32_t,void* count, data
87 TIFFTAG_PLANARCONFIG 1 uint16_t †
88 TIFFTAG_PREDICTOR 1 uint16_t †
89 TIFFTAG_PRIMARYCHROMATICITIES 1 float* 6-entry array
90 TIFFTAG_REFERENCEBLACKWHITE 1 float* † 6-entry array
91 TIFFTAG_RESOLUTIONUNIT 1 uint16_t
92 TIFFTAG_RICHTIFFIPTC 2 uint32_t,void* count, data
93 TIFFTAG_ROWSPERSTRIP 1 uint32_t † must be > 0
94 TIFFTAG_SAMPLEFORMAT 1 uint16_t †
95 TIFFTAG_SAMPLESPERPIXEL 1 uint16_t † value must be <= 4
96 TIFFTAG_SMAXSAMPLEVALUE 1 double
97 TIFFTAG_SMINSAMPLEVALUE 1 double
98 TIFFTAG_SOFTWARE 1 char*
99 TIFFTAG_STONITS 1 double †
100 TIFFTAG_SUBFILETYPE 1 uint32_t
101 TIFFTAG_SUBIFD 2 uint16_t,uint64_t* count & offsets array
102 TIFFTAG_TARGETPRINTER 1 char*
103 TIFFTAG_THRESHHOLDING 1 uint16_t
104 TIFFTAG_TILEDEPTH 1 uint32_t †
105 TIFFTAG_TILELENGTH 1 uint32_t † must be a multiple of 8
106 TIFFTAG_TILEWIDTH 1 uint32_t † must be a multiple of 8
107 TIFFTAG_TRANSFERFUNCTION 1 or 3‡ uint16_t* 1<<BitsPerSample entry arrays
108 TIFFTAG_WHITEPOINT 1 float* 2-entry array
109 TIFFTAG_XMLPACKET 2 uint32_t,void* count, data
110 TIFFTAG_XPOSITION 1 float
111 TIFFTAG_XRESOLUTION 1 float
112 TIFFTAG_YCBCRCOEFFICIENTS 1 float* † 3-entry array
113 TIFFTAG_YCBCRPOSITIONING 1 uint16_t †
114 TIFFTAG_YCBCRSAMPLING 2 uint16_t †
115 TIFFTAG_YPOSITION 1 float
116 TIFFTAG_YRESOLUTION 1 float
117 † Tag may not have its values changed once data is written.
118 ‡ If SamplesPerPixel is one, then a single array is passed; otherwise
119 three arrays should be passed.
120 * The contents of this field are quite complex. See The ICC Profile
121 Format Specification, Annex B.3 "Embedding ICC Profiles in TIFF Files"
122 (available at http://www.color.org) for an explanation.
123
125 1 is returned if the operation was successful. Otherwise, 0 is re‐
126 turned if an error was detected.
127
129 All error messages are directed to the TIFFError(3TIFF) routine.
130
131 %s: Cannot modify tag "%s" while writing. Data has already been writ‐
132 ten to the file, so the specified tag's value can not be changed. This
133 restriction is applied to all tags that affect the format of written
134 data.
135
136 %d: Bad value for "%s". An invalid value was supplied for the named
137 tag.
138
140 TIFFOpen(3TIFF), TIFFGetField(3TIFF), TIFFSetDirectory(3TIFF),
141 TIFFWriteDirectory(3TIFF), TIFFReadDirectory(3TIFF), libtiff(3TIFF)
142
143 Libtiff library home page: http://www.simplesystems.org/libtiff/
144
145
146
147libtiff October 29, 2004 TIFFSetField(3TIFF)