1 | <!-- Creator : groff version 1.18.1 -->
|
---|
2 | <!-- CreationDate: Fri Jul 13 17:43:15 2007 -->
|
---|
3 | <html>
|
---|
4 | <head>
|
---|
5 | <meta name="generator" content="groff -Thtml, see www.gnu.org">
|
---|
6 | <meta name="Content-Style" content="text/css">
|
---|
7 | <title>TIFFOpen</title>
|
---|
8 | </head>
|
---|
9 | <body>
|
---|
10 |
|
---|
11 | <h1 align=center>TIFFOpen</h1>
|
---|
12 | <a href="#NAME">NAME</a><br>
|
---|
13 | <a href="#SYNOPSIS">SYNOPSIS</a><br>
|
---|
14 | <a href="#DESCRIPTION">DESCRIPTION</a><br>
|
---|
15 | <a href="#OPTIONS">OPTIONS</a><br>
|
---|
16 | <a href="#BYTE ORDER">BYTE ORDER</a><br>
|
---|
17 | <a href="#RETURN VALUES">RETURN VALUES</a><br>
|
---|
18 | <a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
|
---|
19 | <a href="#SEE ALSO">SEE ALSO</a><br>
|
---|
20 |
|
---|
21 | <hr>
|
---|
22 | <a name="NAME"></a>
|
---|
23 | <h2>NAME</h2>
|
---|
24 | <!-- INDENTATION -->
|
---|
25 | <table width="100%" border=0 rules="none" frame="void"
|
---|
26 | cols="2" cellspacing="0" cellpadding="0">
|
---|
27 | <tr valign="top" align="left">
|
---|
28 | <td width="8%"></td>
|
---|
29 | <td width="91%">
|
---|
30 | <p>TIFFOpen, TIFFFdOpen, TIFFClientOpen − open a
|
---|
31 | <small>TIFF</small> file for reading or writing</p>
|
---|
32 | </td>
|
---|
33 | </table>
|
---|
34 | <a name="SYNOPSIS"></a>
|
---|
35 | <h2>SYNOPSIS</h2>
|
---|
36 | <!-- INDENTATION -->
|
---|
37 | <table width="100%" border=0 rules="none" frame="void"
|
---|
38 | cols="2" cellspacing="0" cellpadding="0">
|
---|
39 | <tr valign="top" align="left">
|
---|
40 | <td width="8%"></td>
|
---|
41 | <td width="91%">
|
---|
42 | <p><b>#include <tiffio.h></b></p>
|
---|
43 | <!-- INDENTATION -->
|
---|
44 | <p><b>TIFF* TIFFOpen(const char *</b><i>filename</i><b>,
|
---|
45 | const char *</b><i>mode</i><b>)<br>
|
---|
46 | TIFF* TIFFFdOpen(const int</b> <i>fd</i><b>, const char
|
---|
47 | *</b><i>filename</i><b>, const char
|
---|
48 | *</b><i>mode</i><b>)</b></p>
|
---|
49 | <!-- INDENTATION -->
|
---|
50 | <p><b>typedef tsize_t (*TIFFReadWriteProc)(thandle_t,
|
---|
51 | tdata_t, tsize_t);<br>
|
---|
52 | typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);<br>
|
---|
53 | typedef int (*TIFFCloseProc)(thandle_t);<br>
|
---|
54 | typedef toff_t (*TIFFSizeProc)(thandle_t);<br>
|
---|
55 | typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*,
|
---|
56 | toff_t*);<br>
|
---|
57 | typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t,
|
---|
58 | toff_t);</b></p>
|
---|
59 | <!-- INDENTATION -->
|
---|
60 | <p><b>TIFF* TIFFClientOpen(const char
|
---|
61 | *</b><i>filename</i><b>, const char *</b><i>mode</i><b>,
|
---|
62 | thandle_t</b> <i>clientdata</i><b>, TIFFReadWriteProc</b>
|
---|
63 | <i>readproc</i><b>, TIFFReadWriteProc</b>
|
---|
64 | <i>writeproc</i><b>, TIFFSeekProc</b> <i>seekproc</i><b>,
|
---|
65 | TIFFCloseProc</b> <i>closeproc</i><b>, TIFFSizeProc</b>
|
---|
66 | <i>sizeproc</i><b>, TIFFMapFileProc</b> <i>mapproc</i><b>,
|
---|
67 | TIFFUnmapFileProc</b> <i>unmapproc</i><b>)</b></p>
|
---|
68 | </td>
|
---|
69 | </table>
|
---|
70 | <a name="DESCRIPTION"></a>
|
---|
71 | <h2>DESCRIPTION</h2>
|
---|
72 | <!-- INDENTATION -->
|
---|
73 | <table width="100%" border=0 rules="none" frame="void"
|
---|
74 | cols="2" cellspacing="0" cellpadding="0">
|
---|
75 | <tr valign="top" align="left">
|
---|
76 | <td width="8%"></td>
|
---|
77 | <td width="91%">
|
---|
78 | <p><i>TIFFOpen</i> opens a <small>TIFF</small> file whose
|
---|
79 | name is <i>filename</i> and returns a handle to be used in
|
---|
80 | subsequent calls to routines in <i>libtiff</i>. If the open
|
---|
81 | operation fails, then zero is returned. The <i>mode</i>
|
---|
82 | parameter specifies if the file is to be opened for reading
|
---|
83 | (‘‘r’’), writing
|
---|
84 | (‘‘w’’), or appending
|
---|
85 | (‘‘a’’) and, optionally, whether to
|
---|
86 | override certain default aspects of library operation (see
|
---|
87 | below). When a file is opened for appending, existing data
|
---|
88 | will not be touched; instead new data will be written as
|
---|
89 | additional subfiles. If an existing file is opened for
|
---|
90 | writing, all previous data is overwritten.</p>
|
---|
91 | <!-- INDENTATION -->
|
---|
92 | <p>If a file is opened for reading, the first
|
---|
93 | <small>TIFF</small> directory in the file is automatically
|
---|
94 | read (also see <i>TIFFSetDirectory</i>(3TIFF) for reading
|
---|
95 | directories other than the first). If a file is opened for
|
---|
96 | writing or appending, a default directory is automatically
|
---|
97 | created for writing subsequent data. This directory has all
|
---|
98 | the default values specified in <small>TIFF</small> Revision
|
---|
99 | 6.0: <i>BitsPerSample</i>=1, <i>ThreshHolding</i>=bilevel
|
---|
100 | art scan, <i>FillOrder</i>=1 (most significant bit of each
|
---|
101 | data byte is filled first), <i>Orientation</i>=1 (the 0th
|
---|
102 | row represents the visual top of the image, and the 0th
|
---|
103 | column represents the visual left hand side),
|
---|
104 | <i>SamplesPerPixel</i>=1, <i>RowsPerStrip</i>=infinity,
|
---|
105 | <i>ResolutionUnit</i>=2 (inches), and <i>Compression</i>=1
|
---|
106 | (no compression). To alter these values, or to define values
|
---|
107 | for additional fields, <i>TIFFSetField</i>(3TIFF) must be
|
---|
108 | used.</p>
|
---|
109 | <!-- INDENTATION -->
|
---|
110 | <p><i>TIFFFdOpen</i> is like <i>TIFFOpen</i> except that it
|
---|
111 | opens a <small>TIFF</small> file given an open file
|
---|
112 | descriptor <i>fd</i>. The file’s name and mode must
|
---|
113 | reflect that of the open descriptor. The object associated
|
---|
114 | with the file descriptor <b>must support random
|
---|
115 | access</b>.</p>
|
---|
116 | <!-- INDENTATION -->
|
---|
117 | <p><i>TIFFClientOpen</i> is like <i>TIFFOpen</i> except that
|
---|
118 | the caller supplies a collection of functions that the
|
---|
119 | library will use to do <small>UNIX</small> -like I/O
|
---|
120 | operations. The <i>readproc</i> and <i>writeproc</i> are
|
---|
121 | called to read and write data at the current file position.
|
---|
122 | <i>seekproc</i> is called to change the current file
|
---|
123 | position a la <i>lseek</i>(2). <i>closeproc</i> is invoked
|
---|
124 | to release any resources associated with an open file.
|
---|
125 | <i>sizeproc</i> is invoked to obtain the size in bytes of a
|
---|
126 | file. <i>mapproc</i> and <i>unmapproc</i> are called to map
|
---|
127 | and unmap a file’s contents in memory; c.f.
|
---|
128 | <i>mmap</i>(2) and <i>munmap</i>(2). The <i>clientdata</i>
|
---|
129 | parameter is an opaque ‘‘handle’’
|
---|
130 | passed to the client-specified routines passed as parameters
|
---|
131 | to <i>TIFFClientOpen</i>.</p>
|
---|
132 | </td>
|
---|
133 | </table>
|
---|
134 | <a name="OPTIONS"></a>
|
---|
135 | <h2>OPTIONS</h2>
|
---|
136 | <!-- INDENTATION -->
|
---|
137 | <table width="100%" border=0 rules="none" frame="void"
|
---|
138 | cols="2" cellspacing="0" cellpadding="0">
|
---|
139 | <tr valign="top" align="left">
|
---|
140 | <td width="8%"></td>
|
---|
141 | <td width="91%">
|
---|
142 | <p>The open mode parameter can include the following flags
|
---|
143 | in addition to the ‘‘r’’,
|
---|
144 | ‘‘w’’, and
|
---|
145 | ‘‘a’’ flags. Note however that
|
---|
146 | option flags must follow the read-write-append
|
---|
147 | specification.</p>
|
---|
148 | </td>
|
---|
149 | </table>
|
---|
150 | <!-- TABS -->
|
---|
151 | <table width="100%" border=0 rules="none" frame="void"
|
---|
152 | cols="5" cellspacing="0" cellpadding="0">
|
---|
153 | <tr valign="top" align="left">
|
---|
154 | <td width="10%"></td>
|
---|
155 | <td width="2%">
|
---|
156 |
|
---|
157 | <p><b>l</b></p>
|
---|
158 | </td>
|
---|
159 | <td width="6%"></td>
|
---|
160 | <td width="80%">
|
---|
161 |
|
---|
162 | <p>When creating a new file force information be written
|
---|
163 | with Little-Endian byte order (but see below). By default
|
---|
164 | the library will create new files using the native
|
---|
165 | <small>CPU</small> byte order.</p>
|
---|
166 | </td>
|
---|
167 | <td width="0%">
|
---|
168 | </td>
|
---|
169 | <tr valign="top" align="left">
|
---|
170 | <td width="10%"></td>
|
---|
171 | <td width="2%">
|
---|
172 |
|
---|
173 | <p><b>b</b></p>
|
---|
174 | </td>
|
---|
175 | <td width="6%"></td>
|
---|
176 | <td width="80%">
|
---|
177 |
|
---|
178 | <p>When creating a new file force information be written
|
---|
179 | with Big-Endian byte order (but see below). By default the
|
---|
180 | library will create new files using the native
|
---|
181 | <small>CPU</small> byte order.</p>
|
---|
182 | </td>
|
---|
183 | <td width="0%">
|
---|
184 | </td>
|
---|
185 | <tr valign="top" align="left">
|
---|
186 | <td width="10%"></td>
|
---|
187 | <td width="2%">
|
---|
188 |
|
---|
189 | <p><b>L</b></p>
|
---|
190 | </td>
|
---|
191 | <td width="6%"></td>
|
---|
192 | <td width="80%">
|
---|
193 |
|
---|
194 | <p>Force image data that is read or written to be treated
|
---|
195 | with bits filled from Least Significant Bit (
|
---|
196 | <small>LSB</small> ) to Most Significant Bit (
|
---|
197 | <small>MSB</small> ). Note that this is the opposite to the
|
---|
198 | way the library has worked from its inception.</p>
|
---|
199 | </td>
|
---|
200 | <td width="0%">
|
---|
201 | </td>
|
---|
202 | <tr valign="top" align="left">
|
---|
203 | <td width="10%"></td>
|
---|
204 | <td width="2%">
|
---|
205 |
|
---|
206 | <p><b>B</b></p>
|
---|
207 | </td>
|
---|
208 | <td width="6%"></td>
|
---|
209 | <td width="80%">
|
---|
210 |
|
---|
211 | <p>Force image data that is read or written to be treated
|
---|
212 | with bits filled from Most Significant Bit (
|
---|
213 | <small>MSB</small> ) to Least Significant Bit (
|
---|
214 | <small>LSB</small> ); this is the default.</p>
|
---|
215 | </td>
|
---|
216 | <td width="0%">
|
---|
217 | </td>
|
---|
218 | <tr valign="top" align="left">
|
---|
219 | <td width="10%"></td>
|
---|
220 | <td width="2%">
|
---|
221 |
|
---|
222 | <p><b>H</b></p>
|
---|
223 | </td>
|
---|
224 | <td width="6%"></td>
|
---|
225 | <td width="80%">
|
---|
226 |
|
---|
227 | <p>Force image data that is read or written to be treated
|
---|
228 | with bits filled in the same order as the native
|
---|
229 | <small>CPU.</small></p>
|
---|
230 | </td>
|
---|
231 | <td width="0%">
|
---|
232 | </td>
|
---|
233 | <tr valign="top" align="left">
|
---|
234 | <td width="10%"></td>
|
---|
235 | <td width="2%">
|
---|
236 |
|
---|
237 | <p><b>M</b></p>
|
---|
238 | </td>
|
---|
239 | <td width="6%"></td>
|
---|
240 | <td width="80%">
|
---|
241 |
|
---|
242 | <p>Enable the use of memory-mapped files for images opened
|
---|
243 | read-only. If the underlying system does not support
|
---|
244 | memory-mapped files or if the specific image being opened
|
---|
245 | cannot be memory-mapped then the library will fallback to
|
---|
246 | using the normal system interface for reading information.
|
---|
247 | By default the library will attempt to use memory-mapped
|
---|
248 | files.</p>
|
---|
249 | </td>
|
---|
250 | <td width="0%">
|
---|
251 | </td>
|
---|
252 | <tr valign="top" align="left">
|
---|
253 | <td width="10%"></td>
|
---|
254 | <td width="2%">
|
---|
255 |
|
---|
256 | <p><b>m</b></p>
|
---|
257 | </td>
|
---|
258 | <td width="6%"></td>
|
---|
259 | <td width="80%">
|
---|
260 |
|
---|
261 | <p>Disable the use of memory-mapped files.</p>
|
---|
262 | </td>
|
---|
263 | <td width="0%">
|
---|
264 | </td>
|
---|
265 | <tr valign="top" align="left">
|
---|
266 | <td width="10%"></td>
|
---|
267 | <td width="2%">
|
---|
268 |
|
---|
269 | <p><b>C</b></p>
|
---|
270 | </td>
|
---|
271 | <td width="6%"></td>
|
---|
272 | <td width="80%">
|
---|
273 |
|
---|
274 | <p>Enable the use of ‘‘strip
|
---|
275 | chopping’’ when reading images that are
|
---|
276 | comprised of a single strip or tile of uncompressed data.
|
---|
277 | Strip chopping is a mechanism by which the library will
|
---|
278 | automatically convert the single-strip image to multiple
|
---|
279 | strips, each of which has about 8 Kilobytes of data. This
|
---|
280 | facility can be useful in reducing the amount of memory used
|
---|
281 | to read an image because the library normally reads each
|
---|
282 | strip in its entirety. Strip chopping does however alter the
|
---|
283 | apparent contents of the image because when an image is
|
---|
284 | divided into multiple strips it looks as though the
|
---|
285 | underlying file contains multiple separate strips. Finally,
|
---|
286 | note that default handling of strip chopping is a
|
---|
287 | compile-time configuration parameter. The default behaviour,
|
---|
288 | for backwards compatibility, is to enable strip
|
---|
289 | chopping.</p>
|
---|
290 | </td>
|
---|
291 | <td width="0%">
|
---|
292 | </td>
|
---|
293 | <tr valign="top" align="left">
|
---|
294 | <td width="10%"></td>
|
---|
295 | <td width="2%">
|
---|
296 |
|
---|
297 | <p><b>c</b></p>
|
---|
298 | </td>
|
---|
299 | <td width="6%"></td>
|
---|
300 | <td width="80%">
|
---|
301 |
|
---|
302 | <p>Disable the use of strip chopping when reading
|
---|
303 | images.</p>
|
---|
304 | </td>
|
---|
305 | <td width="0%">
|
---|
306 | </td>
|
---|
307 | <tr valign="top" align="left">
|
---|
308 | <td width="10%"></td>
|
---|
309 | <td width="2%">
|
---|
310 |
|
---|
311 | <p><b>h</b></p>
|
---|
312 | </td>
|
---|
313 | <td width="6%"></td>
|
---|
314 | <td width="80%">
|
---|
315 |
|
---|
316 | <p>Read TIFF header only, do not load the first image
|
---|
317 | directory. That could be useful in case of the broken first
|
---|
318 | directory. We can open the file and proceed to the other
|
---|
319 | directories.</p>
|
---|
320 | </td>
|
---|
321 | <td width="0%">
|
---|
322 | </td>
|
---|
323 | </table>
|
---|
324 | <a name="BYTE ORDER"></a>
|
---|
325 | <h2>BYTE ORDER</h2>
|
---|
326 | <!-- INDENTATION -->
|
---|
327 | <table width="100%" border=0 rules="none" frame="void"
|
---|
328 | cols="2" cellspacing="0" cellpadding="0">
|
---|
329 | <tr valign="top" align="left">
|
---|
330 | <td width="8%"></td>
|
---|
331 | <td width="91%">
|
---|
332 | <p>The <small>TIFF</small> specification (<b>all
|
---|
333 | versions</b>) states that compliant readers <i>must be
|
---|
334 | capable of reading images written in either byte order</i>.
|
---|
335 | Nonetheless some software that claims to support the reading
|
---|
336 | of <small>TIFF</small> images is incapable of reading images
|
---|
337 | in anything but the native <small>CPU</small> byte order on
|
---|
338 | which the software was written. (Especially notorious are
|
---|
339 | applications written to run on Intel-based machines.) By
|
---|
340 | default the library will create new files with the native
|
---|
341 | byte-order of the <small>CPU</small> on which the
|
---|
342 | application is run. This ensures optimal performance and is
|
---|
343 | portable to any application that conforms to the TIFF
|
---|
344 | specification. To force the library to use a specific
|
---|
345 | byte-order when creating a new file the
|
---|
346 | ‘‘b’’ and
|
---|
347 | ‘‘l’’ option flags may be included
|
---|
348 | in the call to open a file; for example,
|
---|
349 | ‘‘wb’’ or
|
---|
350 | ‘‘wl’’.</p>
|
---|
351 | </td>
|
---|
352 | </table>
|
---|
353 | <a name="RETURN VALUES"></a>
|
---|
354 | <h2>RETURN VALUES</h2>
|
---|
355 | <!-- INDENTATION -->
|
---|
356 | <table width="100%" border=0 rules="none" frame="void"
|
---|
357 | cols="2" cellspacing="0" cellpadding="0">
|
---|
358 | <tr valign="top" align="left">
|
---|
359 | <td width="8%"></td>
|
---|
360 | <td width="91%">
|
---|
361 | <p>Upon successful completion <i>TIFFOpen</i>,
|
---|
362 | <i>TIFFFdOpen</i>, and <i>TIFFClientOpen</i> return a
|
---|
363 | <small>TIFF</small> pointer. Otherwise, NULL is
|
---|
364 | returned.</p>
|
---|
365 | </td>
|
---|
366 | </table>
|
---|
367 | <a name="DIAGNOSTICS"></a>
|
---|
368 | <h2>DIAGNOSTICS</h2>
|
---|
369 | <!-- INDENTATION -->
|
---|
370 | <table width="100%" border=0 rules="none" frame="void"
|
---|
371 | cols="2" cellspacing="0" cellpadding="0">
|
---|
372 | <tr valign="top" align="left">
|
---|
373 | <td width="8%"></td>
|
---|
374 | <td width="91%">
|
---|
375 | <p>All error messages are directed to the
|
---|
376 | <i>TIFFError</i>(3TIFF) routine. Likewise, warning messages
|
---|
377 | are directed to the <i>TIFFWarning</i>(3TIFF) routine.</p>
|
---|
378 | <!-- INDENTATION -->
|
---|
379 | <p><b>"%s": Bad mode</b>. The specified
|
---|
380 | <i>mode</i> parameter was not one of
|
---|
381 | ‘‘r’’ (read),
|
---|
382 | ‘‘w’’ (write), or
|
---|
383 | ‘‘a’’ (append).</p>
|
---|
384 | <!-- INDENTATION -->
|
---|
385 | <p><b>%s: Cannot open</b>. <i>TIFFOpen</i>() was unable to
|
---|
386 | open the specified filename for read/writing.</p>
|
---|
387 | <!-- INDENTATION -->
|
---|
388 | <p><b>Cannot read TIFF header</b>. An error occurred while
|
---|
389 | attempting to read the header information.</p>
|
---|
390 | <!-- INDENTATION -->
|
---|
391 | <p><b>Error writing TIFF header</b>. An error occurred while
|
---|
392 | writing the default header information for a new file.</p>
|
---|
393 | <!-- INDENTATION -->
|
---|
394 | <p><b>Not a TIFF file, bad magic number %d (0x%x)</b>. The
|
---|
395 | magic number in the header was not (hex) 0x4d4d or (hex)
|
---|
396 | 0x4949.</p>
|
---|
397 | <!-- INDENTATION -->
|
---|
398 | <p><b>Not a TIFF file, bad version number %d (0x%x)</b>. The
|
---|
399 | version field in the header was not 42 (decimal).</p>
|
---|
400 | <!-- INDENTATION -->
|
---|
401 | <p><b>Cannot append to file that has opposite byte
|
---|
402 | ordering</b>. A file with a byte ordering opposite to the
|
---|
403 | native byte ordering of the current machine was opened for
|
---|
404 | appending (‘‘a’’). This is a
|
---|
405 | limitation of the library.</p>
|
---|
406 | </td>
|
---|
407 | </table>
|
---|
408 | <a name="SEE ALSO"></a>
|
---|
409 | <h2>SEE ALSO</h2>
|
---|
410 | <!-- INDENTATION -->
|
---|
411 | <table width="100%" border=0 rules="none" frame="void"
|
---|
412 | cols="2" cellspacing="0" cellpadding="0">
|
---|
413 | <tr valign="top" align="left">
|
---|
414 | <td width="8%"></td>
|
---|
415 | <td width="91%">
|
---|
416 | <p><i>libtiff</i>(3TIFF), <i>TIFFClose</i>(3TIFF)</p>
|
---|
417 | </td>
|
---|
418 | </table>
|
---|
419 | <hr>
|
---|
420 | </body>
|
---|
421 | </html>
|
---|