logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

TIFFWriteDirectory - write the current directory in an open TIFF file

Author

       LibTIFF contributors

Description

TIFFWriteDirectory()  will  write  the  contents  of the current directory (IFD) to the file and setup to
       create  a  new  directory  (IFD)  using  TIFFCreateDirectory().    Applications   only   need   to   call
       TIFFWriteDirectory()  when  writing  multiple  subfiles  (images)  to a single TIFF file.  This is called
       "multi-page TIFF" or "multi-image TIFF" (see MultiPage/MultiImageTIFF).   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 placing it at its old location (as TIFFWriteDirectory() would, if
       the size of the directory has not grown) 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.

       The TIFFSetWriteOffset() sets the current write offset.  This should only be used to set the offset to  a
       known  previous location (very carefully), or to 0 so that the next write gets appended to the end of the
       file.

       The TIFFWriteCheck()  verify file is writable and that the directory information is setup  properly.   In
       doing  the  latter  we  also  "freeze"  the  state  of the directory so that important information is not
       changed.

Diagnostics

       All error messages are directed to the TIFFErrorExtR() routine.

       "Errorpost-encodingbeforedirectorywrite":
          Before  writing  the  contents  of  the  current directory, any pending data are flushed. This message
          indicates that an error occurred while doing this.

       "Errorflushingdatabeforedirectorywrite":
          Before writing the contents of the current directory, any  pending  data  are  flushed.  This  message
          indicates that an error occurred while doing this.

       "Cannotwritedirectory,outofspace":
          There was not enough space to allocate a temporary area for the directory that was to be written.

       "Errorwritingdirectorycount":
          A write error occurred when writing the count of fields in the directory.

       "Errorwritingdirectorycontents":
          A write error occurred when writing the directory fields.

       "Errorwritingdirectorylink":
          A write error occurred when writing the link to the next directory.

       Errorwritingdataforfield"%s":
          A write error occurred when writing indirect data for the specified field.

       "ErrorwritingTIFFheader":
          A write error occurred when re-writing header at the front of the file.

       "Errorfetchingdirectorycount":
          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.

       "Errorfetchingdirectorylink":
          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.

Name

       TIFFWriteDirectory - write the current directory in an open TIFF file

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.

See Also

TIFFquery  (3tiff),  TIFFOpen  (3tiff),   TIFFCreateDirectory   (3tiff),   TIFFCustomDirectory   (3tiff),
       TIFFSetDirectory  (3tiff),  TIFFReadDirectory  (3tiff), TIFFError (3tiff), MultiPage/MultiImageTIFF,
       libtiff (3tiff)

Synopsis

          #include <tiffio.h>

       intTIFFWriteDirectory(TIFF*tif)intTIFFRewriteDirectory(TIFF*tif)intTIFFCheckpointDirectory(TIFF*tif)voidTIFFSetWriteOffset(TIFF*tif,toff_toff)intTIFFWriteCheck(TIFF*tif,inttiles,constchar*module)

See Also