NAME¶
TIFFWriteDirectory, TIFFRewriteDirectory, TIFFCheckpointDirectory - write the
current directory in an open
TIFF file
SYNOPSIS¶
#include <tiffio.h>
int TIFFWriteDirectory(TIFF *tif)
int TIFFRewriteDirectory(TIFF *tif)
int TIFFCheckpointDirectory(TIFF *tif)
DESCRIPTION¶
TIFFWriteDirectory will write the contents of the current directory to
the file and setup to create a new subfile in the same file. Applications only
need to call
TIFFWriteDirectory when writing multiple subfiles to a
single
TIFF file.
TIFFWriteDirectory is automatically
called by
TIFFClose and
TIFFFlush to write a modified directory
if the file is open for writing.
The
TIFFRewriteDirectory function operates similarly to
TIFFWriteDirectory, but can be called with directories previously read
or written that already have an established location in the file. It will
rewrite the directory, but instead of place it at it's old location (as
TIFFWriteDirectory would) it will place them at the end of the file,
correcting the pointer from the preceding directory or file header to point to
it's new location. This is particularly important in cases where the size of
the directory and pointed to data has grown, so it won't fit in the space
available at the old location.
The
TIFFCheckpointDirectory writes the current state of the tiff
directory into the file to make what is currently in the file readable. Unlike
TIFFWriteDirectory, TIFFCheckpointDirectory does not free up the
directory data structures in memory, so they can be updated (as strips/tiles
are written) and written again. Reading such a partial file you will at worst
get a tiff read error for the first strip/tile encountered that is incomplete,
but you will at least get all the valid data in the file before that. When the
file is complete, just use
TIFFWriteDirectory as usual to finish it off
cleanly.
RETURN VALUES¶
1 is returned when the contents are successfully written to the file. Otherwise,
0 is returned if an error was encountered when writing the directory contents.
DIAGNOSTICS¶
All error messages are directed to the
TIFFError(3TIFF) routine.
Error post-encoding before directory write. Before writing the contents
of the current directory, any pending data are flushed. This message indicates
that an error occurred while doing this.
Error flushing data before directory write. Before writing the contents
of the current directory, any pending data are flushed. This message indicates
that an error occurred while doing this.
Cannot write directory, out of space. There was not enough space to
allocate a temporary area for the directory that was to be written.
Error writing directory count. A write error occurred when writing the
count of fields in the directory.
Error writing directory contents. A write error occurred when writing the
directory fields.
Error writing directory link. A write error occurred when writing the
link to the next directory.
Error writing data for field "%s". A write error occurred when
writing indirect data for the specified field.
Error writing TIFF header. A write error occurred when re-writing header
at the front of the file.
Error fetching directory count. A read error occurred when fetching the
directory count field for a previous directory. This can occur when setting up
a link to the directory that is being written.
Error fetching directory link. A read error occurred when fetching the
directory link field for a previous directory. This can occur when setting up
a link to the directory that is being written.
SEE ALSO¶
TIFFOpen(3TIFF),
TIFFError(3TIFF),
TIFFReadDirectory(3TIFF),
TIFFSetDirectory(3TIFF),
libtiff(3TIFF)
Libtiff library home page:
http://www.remotesensing.org/libtiff/