dwww Home | Manual pages | Find package

TIFFOPEN(3tiff)                     LibTIFF                    TIFFOPEN(3tiff)

NAME
       TIFFOpen - open a TIFF file for reading or writing

SYNOPSIS
          #include <tiffio.h>

       TIFF *TIFFOpen(const char *filename, const char *mode)

       TIFF *TIFFOpenW(const wchar_t *name, const char *mode)

       TIFF *TIFFFdOpen(const int fd, const char *filename, const char *mode)

       TIFF    *TIFFOpenExt(const    char   *filename,   const   char   *mode,
       TIFFOpenOptions *opts)

       TIFF   *TIFFOpenWExt(const   wchar_t   *name,   const    char    *mode,
       TIFFOpenOptions *opts)

       TIFF  *TIFFFdOpenExt(const  int  fd,  const  char *filename, const char
       *mode, TIFFOpenOptions *opts)

       const char *TIFFSetFileName(TIFF *tif)

       int TIFFSetFileno(TIFF *tif, int fd)

       int TIFFSetMode(TIFF *tif, int mode)

       typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t)

       typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int)

       typedef int (*TIFFCloseProc)(thandle_t)

       typedef toff_t (*TIFFSizeProc)(thandle_t)

       typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*)

       typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t)

       TIFF *TIFFClientOpen(const char *filename, const char *mode,  thandle_t
       clientdata,  TIFFReadWriteProc  readproc,  TIFFReadWriteProc writeproc,
       TIFFSeekProc seekproc, TIFFCloseProc closeproc, TIFFSizeProc  sizeproc,
       TIFFMapFileProc mapproc, TIFFUnmapFileProc unmapproc)

       TIFF   *TIFFClientOpenExt(const   char  *filename,  const  char  *mode,
       thandle_t  clientdata,  TIFFReadWriteProc  readproc,  TIFFReadWriteProc
       writeproc, TIFFSeekProc seekproc, TIFFCloseProc closeproc, TIFFSizeProc
       sizeproc,   TIFFMapFileProc   mapproc,   TIFFUnmapFileProc   unmapproc,
       TIFFOpenOptions *opts)

       thandle_t TIFFClientdata(TIFF *tif)

       thandle_t TIFFSetClientdata(TIFF *tif, thandle_t newvalue)

DESCRIPTION
       TIFFOpen()  opens a TIFF file whose name is filename and returns a han-
       dle to be used in subsequent calls to routines in libtiff.  If the open
       operation  fails, then NULL (0) is returned.  The mode parameter speci-
       fies if the file is to be opened for reading (r), writing (w),  or  ap-
       pending  (a)  and,  optionally, whether to override certain default as-
       pects of library operation (see below).  When a file is opened for  ap-
       pending,  existing  data  will not be touched; instead new data will be
       written as additional subfiles.  If an  existing  file  is  opened  for
       writing, all previous data is overwritten.

       If  a  file is opened for reading, the first TIFF directory in the file
       is automatically read (also see TIFFSetDirectory() for reading directo-
       ries other than the first).  If a file is opened for writing or append-
       ing, a default directory is automatically created  for  writing  subse-
       quent  data.   This  directory  has all the default values specified in
       TIFF Revision 6.0:

       • BitsPerSample = 1,

       • ThreshHolding = "bilevel art scan"

       • FillOrder = 1 (most significant bit  of  each  data  byte  is  filled
         first)

       • Orientation  = 1 (the 0th row represents the visual top of the image,
         and the 0th column represents the visual left hand side),

       • SamplesPerPixel = 1,

       • RowsPerStrip = ∞,

       • ResolutionUnit = 2 (inches), and

       • Compression = 1 (no compression).

       To alter these values, or  to  define  values  for  additional  fields,
       TIFFSetField() must be used.

       A  file  can also be opened for reading and writing with mode (r+).  In
       this case, the first TIFF directory in the file is automatically  read,
       but  calls to TIFFSetField() are put into a fresh directory, which will
       be appended when the file is closed.

       TIFFOpenW() opens a TIFF file with a Unicode filename,  for  read/writ-
       ing.

       TIFFFdOpen()  is like TIFFOpen() except that it opens a TIFF file given
       an open file descriptor fd.  The file's name and mode must reflect that
       of the open descriptor.  The object associated with the file descriptor
       must support random access.  In order to close a TIFF file opened  with
       TIFFFdOpen()  first TIFFCleanup() should be called to free the internal
       TIFF structure without closing the file handle and afterwards the  file
       should be closed using its file descriptor fd.

       TIFFOpenExt()  (added  in libtiff 4.5) is like TIFFOpen(), but options,
       such as re-entrant error and warning handlers may be  passed  with  the
       opts argument. The opts argument may be NULL.  Refer to TIFFOpenOptions
       for allocating and filling the opts argument parameters. The  allocated
       memory  for  TIFFOpenOptions  can be released straight after successful
       execution of the related "TIFFOpenExt" functions.

       TIFFOpenWExt() (added in libtiff 4.5) is like TIFFOpenExt(), but  opens
       a TIFF file with a Unicode filename.

       TIFFFdOpenExt()  (added  in  libtiff 4.5) is like TIFFFdOpen(), but op-
       tions, such as re-entrant error and warning handlers may be passed with
       the   opts   argument.  The  opts  argument  may  be  NULL.   Refer  to
       TIFFOpenOptions for filling the opts argument.

       TIFFSetFileName() sets the file name in the tif-structure  and  returns
       the old file name.

       TIFFSetFileno()  overwrites  a  copy of the open file's I/O descriptor,
       that was saved when the TIFF file was first  opened,  and  returns  the
       previous value. See note below.

       TIFFSetMode()  sets  the libtiff open mode in the tif-structure and re-
       turns the old mode.

       TIFFClientOpen() is like TIFFOpen() except that the caller  supplies  a
       collection  of  functions that the library will use to do UNIX-like I/O
       operations.  The readproc and writeproc functions are  called  to  read
       and  write  data  at  the current file position.  seekproc is called to
       change the current file position à la lseek() (2).   closeproc  is  in-
       voked  to release any resources associated with an open file.  sizeproc
       is invoked to obtain the size in bytes of a file.  mapproc  and  unmap-
       proc  are  called  to  map  and unmap a file's contents in memory; c.f.
       mmap() (2) and munmap() (2).  The clientdata  parameter  is  an  opaque
       "handle"  passed  to the client-specified routines passed as parameters
       to TIFFClientOpen().

       TIFFClientOpenExt() (added in libtiff 4.5)  is  like  TIFFClientOpen(),
       but options argument opts like for TIFFOpenExt() can be passed.

       TIFFClientdata()  returns  open  file's clientdata handle, which is the
       real  open  file's  I/O  descriptor  used  by  libtiff.   Note:  Within
       tif_unix.c this handle is converted into an integer file descriptor.

       TIFFSetClientdata()  sets  open  file's clientdata, and return previous
       value.  The clientdata is used as open  file's  I/O  descriptor  within
       libtiff.

       NOTE:
          clientdata  is  used as file descriptor or handle of the opened TIFF
          file within libtif, whereas the file descriptor  fd  (changeable  by
          TIFFSetFileno())  is  only  set once to the value of clientdata con-
          verted to an integer (in tif_win32.c  as  well  as  in  tif_unix.c).
          When updating the file's clientdata with TIFFSetClientdata(), the fd
          value is not updated.

OPTIONS
       The open mode parameter can include the following flags in addition  to
       the  r, w, and a flags.  Note however that option flags must follow the
       read-write-append specification.

       l:
          When creating a new file force  information  be  written  with  Lit-
          tle-Endian  byte order (but see below).  By default the library will
          create new files using the native CPU byte order.

       b:
          When creating a new file force information be written  with  Big-En-
          dian byte order (but see below).  By default the library will create
          new files using the native CPU byte order.

       L:
          Force image data that is read or written to  be  treated  with  bits
          filled  from  Least  Significant  Bit  (LSB) to Most Significant Bit
          (MSB).  Note that this is the opposite to the way  the  library  has
          worked from its inception.

       B:
          Force  image  data  that  is read or written to be treated with bits
          filled from Most Significant Bit  (MSB)  to  Least  Significant  Bit
          (LSB); this is the default.

       H:
          Force  image  data  that  is read or written to be treated with bits
          filled in the same order as the native CPU.

       M:
          Enable the use of memory-mapped files for images  opened  read-only.
          If  the underlying system does not support memory-mapped files or if
          the specific image being opened cannot be memory-mapped then the li-
          brary will fallback to using the normal system interface for reading
          information.  By default  the  library  will  attempt  to  use  mem-
          ory-mapped files.

       m:
          Disable the use of memory-mapped files.

       C:
          Enable the use of "strip chopping" when reading images that are com-
          prised of a single strip or tile of uncompressed data.  Strip  chop-
          ping  is a mechanism by which the library will automatically convert
          the single-strip image to multiple strips, each of which has about 8
          Kilobytes  of  data.   This  facility  can be useful in reducing the
          amount of memory used to read an image because the library  normally
          reads each strip in its entirety.  Strip chopping does however alter
          the apparent contents of the image because when an image is  divided
          into multiple strips it looks as though the underlying file contains
          multiple separate strips.  Finally, note that  default  handling  of
          strip  chopping  is a compile-time configuration parameter.  The de-
          fault behaviour, for backwards compatibility,  is  to  enable  strip
          chopping.

       c:
          Disable the use of strip chopping when reading images.

       h:
          Read  TIFF  header only, do not load the first image directory. That
          could be useful in case of the broken first directory. We  can  open
          the file and proceed to the other directories.

       4:
          ClassicTIFF for creating a file (default)

       8:
          BigTIFF for creating a file.

       D:
          Enable  use  of  deferred strip/tile offset/bytecount array loading.
          They will be loaded the first time they are accessed to. This  load-
          ing  will  be  done in its entirety unless the O flag is also speci-
          fied.

       O:
          On-demand loading of values of the strip/tile  offset/bytecount  ar-
          rays,  limited  to  the requested strip/tile, instead of whole array
          loading (implies D)

BYTE ORDER
       The TIFF specification (all versions)  states  that  compliant  readers
       "must  be  capable  of  reading  images written in either byte order" .
       Nonetheless some software that claims to support the  reading  of  TIFF
       images  is  incapable  of reading images in anything but the native CPU
       byte order on which the software was  written.   (Especially  notorious
       are  applications  written to run on Intel-based machines.)  By default
       the library will create new files with the native byte-order of the CPU
       on  which the application is run.  This ensures optimal performance and
       is portable to any application that conforms to the TIFF specification.
       To  force  the library to use a specific byte-order when creating a new
       file the b and l option flags may be included in the  call  to  open  a
       file; for example, wb or wl.

RETURN VALUES
       Upon    successful    completion    TIFFOpen(),    TIFFFdOpen(),    and
       TIFFClientOpen() return a TIFF pointer.  Otherwise, NULL is returned.

DIAGNOSTICS
       All error messages are directed to the TIFFErrorExtR() routine.   Like-
       wise, warning messages are directed to the TIFFWarningExtR() routine.

       "%s": Bad mode:
          The  specified mode parameter was not one of r (read), w (write), or
          a (append).

       "%s: Cannot open":
          TIFFOpen() was unable to open the specified filename for  read/writ-
          ing.

       "Cannot read TIFF header":
          An error occurred while attempting to read the header information.

       "Error writing TIFF header":
          An error occurred while writing the default header information for a
          new file.

       "Not a TIFF file, bad magic number %d (0x%x)":
          The magic number in the header was not (hex) 0x4d4d or (hex) 0x4949.

       "Not a TIFF file, bad version number %d (0x%x)":
          The version field in the header was not 42 (decimal).

       "Cannot append to file that has opposite byte ordering":
          A file with a byte ordering opposite to the native byte ordering  of
          the current machine was opened for appending (a).  This is a limita-
          tion of the library.

SEE ALSO
       libtiff (3tiff), TIFFClose (3tiff), TIFFStrileQuery, TIFFOpenOptions

AUTHOR
       LibTIFF contributors

COPYRIGHT
       1988-2023, LibTIFF contributors

4.5                              Nov 23, 2023                  TIFFOPEN(3tiff)

Generated by dwww version 1.15 on Mon Jul 1 04:33:13 CEST 2024.