16.2. Data Definitions for libtiff

This section defines global identifiers and their values that are associated with interfaces contained in libtiff. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.

This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.

This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

16.2.1. tiff.h


#define CLEANFAXDATA_CLEAN	0
#define DCSIMAGERFILTER_IR	0
#define DCSIMAGERMODEL_M3	0
#define EXTRASAMPLE_UNSPECIFIED	0
#define PERSAMPLE_MERGED	0
#define PHOTOMETRIC_MINISWHITE	0
#define PIXARLOGDATAFMT_8BIT	0
#define SGILOGDATAFMT_FLOAT	0
#define SGILOGENCODE_NODITHER	0
#define DCSINTERPMODE_NORMAL	0x0
#define FAXMODE_CLASSIC	0x0000
#define JPEGCOLORMODE_RAW	0x0000
#define FAXMODE_NORTC	0x0001
#define JPEGCOLORMODE_RGB	0x0001
#define JPEGTABLESMODE_QUANT	0x0001
#define FAXMODE_NOEOL	0x0002
#define JPEGTABLESMODE_HUFF	0x0002
#define FAXMODE_BYTEALIGN	0x0004
#define FAXMODE_WORDALIGN	0x0008
#define DCSINTERPMODE_PREVIEW	0x1
#define FILETYPE_REDUCEDIMAGE	0x1
#define GROUP3OPT_2DENCODING	0x1
#define FILETYPE_PAGE	0x2
#define GROUP3OPT_UNCOMPRESSED	0x2
#define GROUP4OPT_UNCOMPRESSED	0x2
#define FILETYPE_MASK	0x4
#define GROUP3OPT_FILLBITS	0x4
#define MDI_BIGENDIAN	0x4550
#define TIFF_LITTLEENDIAN	0x4949
#define TIFF_BIGENDIAN	0x4d4d
#define MDI_LITTLEENDIAN	0x5045
#define CLEANFAXDATA_REGENERATED	1
#define COLORRESPONSEUNIT_10S	1
#define COMPRESSION_NONE	1
#define DCSIMAGERFILTER_MONO	1
#define DCSIMAGERMODEL_M5	1
#define EXTRASAMPLE_ASSOCALPHA	1
#define FILLORDER_MSB2LSB	1
#define GRAYRESPONSEUNIT_10S	1
#define INKSET_CMYK	1
#define JPEGPROC_BASELINE	1
#define OFILETYPE_IMAGE	1
#define ORIENTATION_TOPLEFT	1
#define PERSAMPLE_MULTI	1
#define PHOTOMETRIC_MINISBLACK	1
#define PIXARLOGDATAFMT_8BITABGR	1
#define PLANARCONFIG_CONTIG	1
#define PREDICTOR_NONE	1
#define RESUNIT_NONE	1
#define SAMPLEFORMAT_UINT	1
#define SGILOGDATAFMT_16BIT	1
#define SGILOGENCODE_RANDITHER	1
#define THRESHHOLD_BILEVEL	1
#define YCBCRPOSITION_CENTERED	1
#define PHOTOMETRIC_ITULAB	10
#define JPEGPROC_LOSSLESS	14
#define CLEANFAXDATA_UNCLEAN	2
#define COLORRESPONSEUNIT_100S	2
#define COMPRESSION_CCITTRLE	2
#define DCSIMAGERFILTER_CFA	2
#define DCSIMAGERMODEL_M6	2
#define EXTRASAMPLE_UNASSALPHA	2
#define FILLORDER_LSB2MSB	2
#define GRAYRESPONSEUNIT_100S	2
#define INKSET_MULTIINK	2
#define OFILETYPE_REDUCEDIMAGE	2
#define ORIENTATION_TOPRIGHT	2
#define PHOTOMETRIC_RGB	2
#define PIXARLOGDATAFMT_11BITLOG	2
#define PLANARCONFIG_SEPARATE	2
#define PREDICTOR_HORIZONTAL	2
#define RESUNIT_INCH	2
#define SAMPLEFORMAT_INT	2
#define SGILOGDATAFMT_RAW	2
#define THRESHHOLD_HALFTONE	2
#define YCBCRPOSITION_COSITED	2
#define TIFFTAG_SUBFILETYPE	254
#define TIFFTAG_OSUBFILETYPE	255
#define TIFFTAG_IMAGEWIDTH	256
#define TIFFTAG_IMAGELENGTH	257
#define TIFFTAG_BITSPERSAMPLE	258
#define TIFFTAG_COMPRESSION	259
#define TIFFTAG_PHOTOMETRIC	262
#define TIFFTAG_THRESHHOLDING	263
#define TIFFTAG_CELLWIDTH	264
#define TIFFTAG_CELLLENGTH	265
#define TIFFTAG_FILLORDER	266
#define TIFFTAG_DOCUMENTNAME	269
#define TIFFTAG_IMAGEDESCRIPTION	270
#define TIFFTAG_MAKE	271
#define TIFFTAG_MODEL	272
#define TIFFTAG_STRIPOFFSETS	273
#define TIFFTAG_ORIENTATION	274
#define TIFFTAG_SAMPLESPERPIXEL	277
#define TIFFTAG_ROWSPERSTRIP	278
#define TIFFTAG_STRIPBYTECOUNTS	279
#define TIFFTAG_MINSAMPLEVALUE	280
#define TIFFTAG_MAXSAMPLEVALUE	281
#define TIFFTAG_XRESOLUTION	282
#define TIFFTAG_YRESOLUTION	283
#define TIFFTAG_PLANARCONFIG	284
#define TIFFTAG_PAGENAME	285
#define TIFFTAG_XPOSITION	286
#define TIFFTAG_YPOSITION	287
#define TIFFTAG_FREEOFFSETS	288
#define TIFFTAG_FREEBYTECOUNTS	289
#define TIFFTAG_GRAYRESPONSEUNIT	290
#define TIFFTAG_GRAYRESPONSECURVE	291
#define TIFFTAG_GROUP3OPTIONS	292
#define TIFFTAG_T4OPTIONS	292
#define TIFFTAG_GROUP4OPTIONS	293
#define TIFFTAG_T6OPTIONS	293
#define TIFFTAG_RESOLUTIONUNIT	296
#define TIFFTAG_PAGENUMBER	297
#define COLORRESPONSEUNIT_1000S	3
#define COMPRESSION_CCITTFAX3	3
#define COMPRESSION_CCITT_T4	3
#define DCSIMAGERFILTER_OTHER	3
#define GRAYRESPONSEUNIT_1000S	3
#define OFILETYPE_PAGE	3
#define ORIENTATION_BOTRIGHT	3
#define PHOTOMETRIC_PALETTE	3
#define PIXARLOGDATAFMT_12BITPICIO	3
#define PREDICTOR_FLOATINGPOINT	3
#define RESUNIT_CENTIMETER	3
#define SAMPLEFORMAT_IEEEFP	3
#define SGILOGDATAFMT_8BIT	3
#define THRESHHOLD_ERRORDIFFUSE	3
#define TIFFTAG_COLORRESPONSEUNIT	300
#define TIFFTAG_TRANSFERFUNCTION	301
#define TIFFTAG_SOFTWARE	305
#define TIFFTAG_DATETIME	306
#define TIFFTAG_ARTIST	315
#define TIFFTAG_HOSTCOMPUTER	316
#define TIFFTAG_PREDICTOR	317
#define TIFFTAG_WHITEPOINT	318
#define TIFFTAG_PRIMARYCHROMATICITIES	319
#define TIFFTAG_COLORMAP	320
#define TIFFTAG_HALFTONEHINTS	321
#define TIFFTAG_TILEWIDTH	322
#define TIFFTAG_TILELENGTH	323
#define TIFFTAG_TILEOFFSETS	324
#define TIFFTAG_TILEBYTECOUNTS	325
#define TIFFTAG_BADFAXLINES	326
#define TIFFTAG_CLEANFAXDATA	327
#define COMPRESSION_NEXT	32766
#define COMPRESSION_CCITTRLEW	32771
#define COMPRESSION_PACKBITS	32773
#define TIFFTAG_OPIIMAGEID	32781
#define TIFFTAG_CONSECUTIVEBADFAXLINES	328
#define COMPRESSION_THUNDERSCAN	32809
#define PHOTOMETRIC_LOGL	32844
#define PHOTOMETRIC_LOGLUV	32845
#define COMPRESSION_IT8CTPAD	32895
#define COMPRESSION_IT8LW	32896
#define COMPRESSION_IT8MP	32897
#define COMPRESSION_IT8BL	32898
#define COMPRESSION_PIXARFILM	32908
#define COMPRESSION_PIXARLOG	32909
#define COMPRESSION_DEFLATE	32946
#define COMPRESSION_DCS	32947
#define TIFFTAG_REFPTS	32953
#define TIFFTAG_REGIONTACKPOINT	32954
#define TIFFTAG_REGIONWARPCORNERS	32955
#define TIFFTAG_REGIONAFFINE	32956
#define TIFFTAG_MATTEING	32995
#define TIFFTAG_DATATYPE	32996
#define TIFFTAG_IMAGEDEPTH	32997
#define TIFFTAG_TILEDEPTH	32998
#define TIFFTAG_SUBIFD	330
#define TIFFTAG_INKSET	332
#define TIFFTAG_INKNAMES	333
#define TIFFTAG_PIXAR_IMAGEFULLWIDTH	33300
#define TIFFTAG_PIXAR_IMAGEFULLLENGTH	33301
#define TIFFTAG_PIXAR_TEXTUREFORMAT	33302
#define TIFFTAG_PIXAR_WRAPMODES	33303
#define TIFFTAG_PIXAR_FOVCOT	33304
#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN	33305
#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA	33306
#define TIFFTAG_NUMBEROFINKS	334
#define TIFFTAG_WRITERSERIALNUMBER	33405
#define TIFFTAG_COPYRIGHT	33432
#define EXIFTAG_EXPOSURETIME	33434
#define EXIFTAG_FNUMBER	33437
#define TIFFTAG_DOTRANGE	336
#define TIFFTAG_TARGETPRINTER	337
#define TIFFTAG_RICHTIFFIPTC	33723
#define TIFFTAG_EXTRASAMPLES	338
#define TIFFTAG_SAMPLEFORMAT	339
#define TIFFTAG_SMINSAMPLEVALUE	340
#define TIFFTAG_IT8SITE	34016
#define TIFFTAG_IT8COLORSEQUENCE	34017
#define TIFFTAG_IT8HEADER	34018
#define TIFFTAG_IT8RASTERPADDING	34019
#define TIFFTAG_IT8BITSPERRUNLENGTH	34020
#define TIFFTAG_IT8BITSPEREXTENDEDRUNLENGTH	34021
#define TIFFTAG_IT8COLORTABLE	34022
#define TIFFTAG_IT8IMAGECOLORINDICATOR	34023
#define TIFFTAG_IT8BKGCOLORINDICATOR	34024
#define TIFFTAG_IT8IMAGECOLORVALUE	34025
#define TIFFTAG_IT8BKGCOLORVALUE	34026
#define TIFFTAG_IT8PIXELINTENSITYRANGE	34027
#define TIFFTAG_IT8TRANSPARENCYINDICATOR	34028
#define TIFFTAG_IT8COLORCHARACTERIZATION	34029
#define TIFFTAG_IT8HCUSAGE	34030
#define TIFFTAG_IT8TRAPINDICATOR	34031
#define TIFFTAG_IT8CMYKEQUIVALENT	34032
#define TIFFTAG_SMAXSAMPLEVALUE	341
#define TIFFTAG_FRAMECOUNT	34232
#define TIFFTAG_CLIPPATH	343
#define TIFFTAG_PHOTOSHOP	34377
#define TIFFTAG_XCLIPPATHUNITS	344
#define TIFFTAG_YCLIPPATHUNITS	345
#define TIFFTAG_INDEXED	346
#define COMPRESSION_JBIG	34661
#define TIFFTAG_EXIFIFD	34665
#define TIFFTAG_ICCPROFILE	34675
#define COMPRESSION_SGILOG	34676
#define COMPRESSION_SGILOG24	34677
#define TIFFTAG_JPEGTABLES	347
#define COMPRESSION_JP2000	34712
#define TIFFTAG_JBIGOPTIONS	34750
#define EXIFTAG_EXPOSUREPROGRAM	34850
#define EXIFTAG_SPECTRALSENSITIVITY	34852
#define TIFFTAG_GPSIFD	34853
#define EXIFTAG_ISOSPEEDRATINGS	34855
#define EXIFTAG_OECF	34856
#define TIFFTAG_FAXRECVPARAMS	34908
#define TIFFTAG_FAXSUBADDRESS	34909
#define TIFFTAG_FAXRECVTIME	34910
#define TIFFTAG_FAXDCS	34911
#define COMPRESSION_LZMA	34925
#define TIFFTAG_FEDEX_EDR	34929
#define TIFFTAG_OPIPROXY	351
#define EXIFTAG_EXIFVERSION	36864
#define EXIFTAG_DATETIMEORIGINAL	36867
#define EXIFTAG_DATETIMEDIGITIZED	36868
#define EXIFTAG_COMPONENTSCONFIGURATION	37121
#define EXIFTAG_COMPRESSEDBITSPERPIXEL	37122
#define EXIFTAG_SHUTTERSPEEDVALUE	37377
#define EXIFTAG_APERTUREVALUE	37378
#define EXIFTAG_BRIGHTNESSVALUE	37379
#define EXIFTAG_EXPOSUREBIASVALUE	37380
#define EXIFTAG_MAXAPERTUREVALUE	37381
#define EXIFTAG_SUBJECTDISTANCE	37382
#define EXIFTAG_METERINGMODE	37383
#define EXIFTAG_LIGHTSOURCE	37384
#define EXIFTAG_FLASH	37385
#define EXIFTAG_FOCALLENGTH	37386
#define EXIFTAG_SUBJECTAREA	37396
#define TIFFTAG_STONITS	37439
#define EXIFTAG_MAKERNOTE	37500
#define EXIFTAG_USERCOMMENT	37510
#define EXIFTAG_SUBSECTIME	37520
#define EXIFTAG_SUBSECTIMEORIGINAL	37521
#define EXIFTAG_SUBSECTIMEDIGITIZED	37522
#define COLORRESPONSEUNIT_10000S	4
#define COMPRESSION_CCITTFAX4	4
#define COMPRESSION_CCITT_T6	4
#define GRAYRESPONSEUNIT_10000S	4
#define ORIENTATION_BOTLEFT	4
#define PHOTOMETRIC_MASK	4
#define PIXARLOGDATAFMT_16BIT	4
#define SAMPLEFORMAT_VOID	4
#define EXIFTAG_FLASHPIXVERSION	40960
#define EXIFTAG_COLORSPACE	40961
#define EXIFTAG_PIXELXDIMENSION	40962
#define EXIFTAG_PIXELYDIMENSION	40963
#define EXIFTAG_RELATEDSOUNDFILE	40964
#define TIFFTAG_INTEROPERABILITYIFD	40965
#define EXIFTAG_FLASHENERGY	41483
#define EXIFTAG_SPATIALFREQUENCYRESPONSE	41484
#define EXIFTAG_FOCALPLANEXRESOLUTION	41486
#define EXIFTAG_FOCALPLANEYRESOLUTION	41487
#define EXIFTAG_FOCALPLANERESOLUTIONUNIT	41488
#define EXIFTAG_SUBJECTLOCATION	41492
#define EXIFTAG_EXPOSUREINDEX	41493
#define EXIFTAG_SENSINGMETHOD	41495
#define EXIFTAG_FILESOURCE	41728
#define EXIFTAG_SCENETYPE	41729
#define EXIFTAG_CFAPATTERN	41730
#define EXIFTAG_CUSTOMRENDERED	41985
#define EXIFTAG_EXPOSUREMODE	41986
#define EXIFTAG_WHITEBALANCE	41987
#define EXIFTAG_DIGITALZOOMRATIO	41988
#define EXIFTAG_FOCALLENGTHIN35MMFILM	41989
#define EXIFTAG_SCENECAPTURETYPE	41990
#define EXIFTAG_GAINCONTROL	41991
#define EXIFTAG_CONTRAST	41992
#define EXIFTAG_SATURATION	41993
#define EXIFTAG_SHARPNESS	41994
#define EXIFTAG_DEVICESETTINGDESCRIPTION	41995
#define EXIFTAG_SUBJECTDISTANCERANGE	41996
#define TIFF_VERSION_CLASSIC	42
#define EXIFTAG_IMAGEUNIQUEID	42016
#define TIFF_VERSION_BIG	43
#define COLORRESPONSEUNIT_100000S	5
#define COMPRESSION_LZW	5
#define GRAYRESPONSEUNIT_100000S	5
#define ORIENTATION_LEFTTOP	5
#define PHOTOMETRIC_SEPARATED	5
#define PIXARLOGDATAFMT_FLOAT	5
#define SAMPLEFORMAT_COMPLEXINT	5
#define TIFFTAG_DNGVERSION	50706
#define TIFFTAG_DNGBACKWARDVERSION	50707
#define TIFFTAG_UNIQUECAMERAMODEL	50708
#define TIFFTAG_LOCALIZEDCAMERAMODEL	50709
#define TIFFTAG_CFAPLANECOLOR	50710
#define TIFFTAG_CFALAYOUT	50711
#define TIFFTAG_LINEARIZATIONTABLE	50712
#define TIFFTAG_BLACKLEVELREPEATDIM	50713
#define TIFFTAG_BLACKLEVEL	50714
#define TIFFTAG_BLACKLEVELDELTAH	50715
#define TIFFTAG_BLACKLEVELDELTAV	50716
#define TIFFTAG_WHITELEVEL	50717
#define TIFFTAG_DEFAULTSCALE	50718
#define TIFFTAG_DEFAULTCROPORIGIN	50719
#define TIFFTAG_DEFAULTCROPSIZE	50720
#define TIFFTAG_COLORMATRIX1	50721
#define TIFFTAG_COLORMATRIX2	50722
#define TIFFTAG_CAMERACALIBRATION1	50723
#define TIFFTAG_CAMERACALIBRATION2	50724
#define TIFFTAG_REDUCTIONMATRIX1	50725
#define TIFFTAG_REDUCTIONMATRIX2	50726
#define TIFFTAG_ANALOGBALANCE	50727
#define TIFFTAG_ASSHOTNEUTRAL	50728
#define TIFFTAG_ASSHOTWHITEXY	50729
#define TIFFTAG_BASELINEEXPOSURE	50730
#define TIFFTAG_BASELINENOISE	50731
#define TIFFTAG_BASELINESHARPNESS	50732
#define TIFFTAG_BAYERGREENSPLIT	50733
#define TIFFTAG_LINEARRESPONSELIMIT	50734
#define TIFFTAG_CAMERASERIALNUMBER	50735
#define TIFFTAG_LENSINFO	50736
#define TIFFTAG_CHROMABLURRADIUS	50737
#define TIFFTAG_ANTIALIASSTRENGTH	50738
#define TIFFTAG_SHADOWSCALE	50739
#define TIFFTAG_DNGPRIVATEDATA	50740
#define TIFFTAG_MAKERNOTESAFETY	50741
#define TIFFTAG_CALIBRATIONILLUMINANT1	50778
#define TIFFTAG_CALIBRATIONILLUMINANT2	50779
#define TIFFTAG_BESTQUALITYSCALE	50780
#define TIFFTAG_RAWDATAUNIQUEID	50781
#define TIFFTAG_ORIGINALRAWFILENAME	50827
#define TIFFTAG_ORIGINALRAWFILEDATA	50828
#define TIFFTAG_ACTIVEAREA	50829
#define TIFFTAG_MASKEDAREAS	50830
#define TIFFTAG_ASSHOTICCPROFILE	50831
#define TIFFTAG_ASSHOTPREPROFILEMATRIX	50832
#define TIFFTAG_CURRENTICCPROFILE	50833
#define TIFFTAG_CURRENTPREPROFILEMATRIX	50834
#define TIFFTAG_JPEGPROC	512
#define TIFFTAG_JPEGIFOFFSET	513
#define TIFFTAG_JPEGIFBYTECOUNT	514
#define TIFFTAG_JPEGRESTARTINTERVAL	515
#define TIFFTAG_JPEGLOSSLESSPREDICTORS	517
#define TIFFTAG_JPEGPOINTTRANSFORM	518
#define TIFFTAG_JPEGQTABLES	519
#define TIFFTAG_JPEGDCTABLES	520
#define TIFFTAG_JPEGACTABLES	521
#define TIFFTAG_YCBCRCOEFFICIENTS	529
#define TIFFTAG_YCBCRSUBSAMPLING	530
#define TIFFTAG_YCBCRPOSITIONING	531
#define TIFFTAG_REFERENCEBLACKWHITE	532
#define COMPRESSION_OJPEG	6
#define ORIENTATION_RIGHTTOP	6
#define PHOTOMETRIC_YCBCR	6
#define SAMPLEFORMAT_COMPLEXIEEEFP	6
#define TIFFTAG_DCSHUESHIFTVALUES	65535
#define TIFFTAG_FAXMODE	65536
#define TIFFTAG_JPEGQUALITY	65537
#define TIFFTAG_JPEGCOLORMODE	65538
#define TIFFTAG_JPEGTABLESMODE	65539
#define TIFFTAG_FAXFILLFUNC	65540
#define TIFFTAG_PIXARLOGDATAFMT	65549
#define TIFFTAG_DCSIMAGERTYPE	65550
#define TIFFTAG_DCSINTERPMODE	65551
#define TIFFTAG_DCSBALANCEARRAY	65552
#define TIFFTAG_DCSCORRECTMATRIX	65553
#define TIFFTAG_DCSGAMMA	65554
#define TIFFTAG_DCSTOESHOULDERPTS	65555
#define TIFFTAG_DCSCALIBRATIONFD	65556
#define TIFFTAG_ZIPQUALITY	65557
#define TIFFTAG_PIXARLOGQUALITY	65558
#define TIFFTAG_DCSCLIPRECTANGLE	65559
#define TIFFTAG_SGILOGDATAFMT	65560
#define TIFFTAG_SGILOGENCODE	65561
#define TIFFTAG_LZMAPRESET	65562
#define TIFFTAG_PERSAMPLE	65563
#define COMPRESSION_JPEG	7
#define ORIENTATION_RIGHTBOT	7
#define TIFFTAG_XMLPACKET	700
#define COMPRESSION_ADOBE_DEFLATE	8
#define ORIENTATION_LEFTBOT	8
#define PHOTOMETRIC_CIELAB	8
#define PHOTOMETRIC_ICCLAB	9
#define FAXMODE_CLASSF	FAXMODE_NORTC

typedef TIFF_INT8_T int8;
typedef TIFF_INT16_T int16;
typedef TIFF_INT32_T int32;
typedef TIFF_UINT64_T uint64;
typedef int uint16_vap;
typedef TIFF_UINT8_T uint8;
typedef TIFF_UINT16_T uint16;
typedef TIFF_UINT32_T uint32;

typedef enum {
    TIFF_NOTYPE,
    TIFF_BYTE,
    TIFF_ASCII,
    TIFF_SHORT,
    TIFF_LONG,
    TIFF_RATIONAL,
    TIFF_SBYTE,
    TIFF_UNDEFINED,
    TIFF_SSHORT,
    TIFF_SLONG,
    TIFF_SRATIONAL,
    TIFF_FLOAT,
    TIFF_DOUBLE,
    TIFF_IFD,
    TIFF_LONG8,
    TIFF_SLONG8,
    TIFF_IFD8
} TIFFDataType;

16.2.2. tiffconf.h


#define CMYK_SUPPORT
#define COLORIMETRY_SUPPORT
#define ICC_SUPPORT
#define IPTC_SUPPORT
#define PHOTOSHOP_SUPPORT
#define YCBCR_SUPPORT
#define HOST_BIGENDIAN	0
#define CCITT_SUPPORT	1
#define CHECK_JPEG_YCBCR_SUBSAMPLING	1
#define DEFAULT_EXTRASAMPLE_AS_ALPHA	1
#define HAVE_IEEEFP	1
#define JBIG_SUPPORT	1
#define JPEG_SUPPORT	1
#define LOGLUV_SUPPORT	1
#define LZW_SUPPORT	1
#define MDI_SUPPORT	1
#define NEXT_SUPPORT	1
#define OJPEG_SUPPORT	1
#define PACKBITS_SUPPORT	1
#define PIXARLOG_SUPPORT	1
#define SUBIFD_SUPPORT	1
#define THUNDER_SUPPORT	1
#define ZIP_SUPPORT	1
#define HOST_FILLORDER	FILLORDER_LSB2MSB
#define TIFF_PTRDIFF_T	ptrdiff_t
#define TIFF_INT8_T	signed char
#define TIFF_INT32_T	signed int
#define TIFF_SSIZE_T	signed long
#define TIFF_INT64_T	signed long long
#define TIFF_INT16_T	signed short
#define STRIPCHOP_DEFAULT	TIFF_STRIPCHOP
#define TIFF_UINT8_T	unsigned char
#define TIFF_UINT32_T	unsigned int
#define TIFF_UINT64_T	unsigned long long
#define TIFF_UINT16_T	unsigned short

16.2.3. tiffio.h


#define TIFFGetB(abgr)	(((abgr) >> 16) & 0xff)
#define TIFFGetA(abgr)	(((abgr) >> 24) & 0xff)
#define TIFFGetG(abgr)	(((abgr) >> 8) & 0xff)
#define TIFFGetR(abgr)	((abgr) & 0xff)
#define D50_Y0	(100.0F)
#define D65_Y0	(100.0F)
#define D65_Z0	(108.8827F)
#define D50_Z0	(82.4680F)
#define D65_X0	(95.0470F)
#define D50_X0	(96.4250F)
#define TIFF_VARIABLE	-1
#define TIFF_SPP	-2
#define TIFF_VARIABLE2	-3
#define U_NEU	0.210526316
#define V_NEU	0.473684211
#define TIFFPRINT_NONE	0x0
#define TIFFPRINT_STRIPS	0x1
#define TIFFPRINT_JPEGQTABLES	0x100
#define TIFFPRINT_CURVES	0x2
#define TIFFPRINT_JPEGACTABLES	0x200
#define TIFFPRINT_JPEGDCTABLES	0x200
#define TIFFPRINT_COLORMAP	0x4
#define LOGLUV_PUBLIC	1
#define CIELABTORGB_TABLE_RANGE	1500
#define UVSCALE	410.
#define FIELD_CUSTOM	65
#define TIFF_ANY	TIFF_NOTYPE

typedef struct tiff TIFF;
typedef TIFF_SSIZE_T tmsize_t;
typedef uint64 toff_t;
typedef uint32 ttag_t;
typedef uint16 tdir_t;
typedef uint16 tsample_t;
typedef uint32 tstrile_t;
typedef tstrile_t tstrip_t;
typedef tstrile_t ttile_t;
typedef tmsize_t tsize_t;
typedef void *tdata_t;
typedef void *thandle_t;
typedef unsigned char TIFFRGBValue;
typedef struct {
    float d_mat[3][3];
    float d_YCR;
    float d_YCG;
    float d_YCB;
    uint32 d_Vrwr;
    uint32 d_Vrwg;
    uint32 d_Vrwb;
    float d_Y0R;
    float d_Y0G;
    float d_Y0B;
    float d_gammaR;
    float d_gammaG;
    float d_gammaB;
} TIFFDisplay;
typedef struct {
    TIFFRGBValue *clamptab;
    int *Cr_r_tab;
    int *Cb_b_tab;
    int32 *Cr_g_tab;
    int32 *Cb_g_tab;
    int32 *Y_tab;
} TIFFYCbCrToRGB;
typedef struct {
    int range;
    float rstep;
    float gstep;
    float bstep;
    float X0;
    float Y0;
    float Z0;
    TIFFDisplay display;
    float Yr2r[1501];
    float Yg2g[1501];
    float Yb2b[1501];
} TIFFCIELabToRGB;
typedef struct _TIFFRGBAImage {
    TIFF *tif;
    int stoponerr;
    int isContig;
    int alpha;
    uint32 width;
    uint32 height;
    uint16 bitspersample;
    uint16 samplesperpixel;
    uint16 orientation;
    uint16 req_orientation;
    uint16 photometric;
    uint16 *redcmap;
    uint16 *greencmap;
    uint16 *bluecmap;
    int (*get) (TIFFRGBAImage *, uint32 *, uint32, uint32);
    union {
	void (*any) (TIFFRGBAImage *);
	tileContigRoutine contig;
	tileSeparateRoutine separate;
    } put;
    TIFFRGBValue *Map;
    uint32 **BWmap;
    uint32 **PALmap;
    TIFFYCbCrToRGB *ycbcr;
    TIFFCIELabToRGB *cielab;
    uint8 *UaToAa;
    uint8 *Bitdepth16To8;
    int row_offset;
    int col_offset;
} TIFFRGBAImage;
typedef void (*tileContigRoutine) (TIFFRGBAImage *, uint32 *, uint32,
				   uint32, uint32, uint32, int32, int32,
				   unsigned char *);
typedef void (*tileSeparateRoutine) (TIFFRGBAImage *, uint32 *, uint32,
				     uint32, uint32, uint32, int32, int32,
				     unsigned char *, unsigned char *,
				     unsigned char *, unsigned char *);
typedef int (*TIFFInitMethod) (TIFF *, int);
typedef struct {
    char *name;
    uint16 scheme;
    TIFFInitMethod init;
} TIFFCodec;
typedef void (*TIFFErrorHandler) (const char *, const char *, va_list);
typedef void (*TIFFErrorHandlerExt) (thandle_t, const char *, const char *,
				     va_list);
typedef tmsize_t(*TIFFReadWriteProc) (thandle_t, void *, tmsize_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, void **, toff_t *);
typedef void (*TIFFUnmapFileProc) (thandle_t, void *, toff_t);
typedef void (*TIFFExtendProc) (TIFF *);
typedef struct _TIFFField TIFFField;
typedef struct _TIFFFieldArray TIFFFieldArray;
typedef int (*TIFFVSetMethod) (TIFF *, uint32, va_list);
typedef int (*TIFFVGetMethod) (TIFF *, uint32, va_list);
typedef void (*TIFFPrintMethod) (TIFF *, FILE *, long int);
typedef struct {
    TIFFVSetMethod vsetfield;
    TIFFVGetMethod vgetfield;
    TIFFPrintMethod printdir;
} TIFFTagMethods;
extern int LogL10fromY(double, int);
extern double LogL10toY(int);
extern int LogL16fromY(double, int);
extern double LogL16toY(int);
extern uint32 LogLuv24fromXYZ(float *, int);
extern void LogLuv24toXYZ(uint32, float *);
extern uint32 LogLuv32fromXYZ(float *, int);
extern void LogLuv32toXYZ(uint32, float *);
extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *);
extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB *, const TIFFDisplay *,
			       float *);
extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32,
			    float *, float *, float *);
extern int TIFFCheckTile(TIFF * tif, uint32 x, uint32 y, uint32 z,
			 uint16 s);
extern int TIFFCheckpointDirectory(TIFF *);
extern void TIFFCleanup(TIFF * tif);
extern TIFF *TIFFClientOpen(const char *, const char *, thandle_t,
			    TIFFReadWriteProc, TIFFReadWriteProc,
			    TIFFSeekProc, TIFFCloseProc, TIFFSizeProc,
			    TIFFMapFileProc, TIFFUnmapFileProc);
extern thandle_t TIFFClientdata(TIFF *);
extern void TIFFClose(TIFF * tif);
extern uint32 TIFFComputeStrip(TIFF *, uint32, uint16);
extern uint32 TIFFComputeTile(TIFF * tif, uint32 x, uint32 y, uint32 z,
			      uint16 s);
extern int TIFFCreateCustomDirectory(TIFF *, const TIFFFieldArray *);
extern int TIFFCreateDirectory(TIFF *);
extern int TIFFCreateEXIFDirectory(TIFF *);
extern uint64 TIFFCurrentDirOffset(TIFF *);
extern uint16 TIFFCurrentDirectory(TIFF *);
extern uint32 TIFFCurrentRow(TIFF *);
extern uint32 TIFFCurrentStrip(TIFF *);
extern uint32 TIFFCurrentTile(TIFF * tif);
extern int TIFFDataWidth(TIFFDataType);
extern uint32 TIFFDefaultStripSize(TIFF * tif, uint32 request);
extern void TIFFDefaultTileSize(TIFF *, uint32 *, uint32 *);
extern void TIFFError(const char *, const char *, ...);
extern void TIFFErrorExt(thandle_t, const char *, const char *, ...);
extern TIFF *TIFFFdOpen(int, const char *, const char *);
extern const TIFFField *TIFFFieldWithName(TIFF *, const char *);
extern const TIFFField *TIFFFieldWithTag(TIFF *, uint32);
extern const char *TIFFFileName(TIFF *);
extern int TIFFFileno(TIFF *);
extern const TIFFCodec *TIFFFindCODEC(uint16);
extern const TIFFField *TIFFFindField(TIFF *, uint32, TIFFDataType);
extern int TIFFFlush(TIFF * tif);
extern int TIFFFlushData(TIFF * tif);
extern void TIFFFreeDirectory(TIFF *);
extern const unsigned char *TIFFGetBitRevTable(int);
extern void *TIFFGetClientInfo(TIFF *, const char *);
extern TIFFCloseProc TIFFGetCloseProc(TIFF *);
extern TIFFCodec *TIFFGetConfiguredCODECs(void);
extern int TIFFGetField(TIFF * tif, uint32 tag, ...);
extern int TIFFGetFieldDefaulted(TIFF * tif, uint32 tag, ...);
extern TIFFMapFileProc TIFFGetMapFileProc(TIFF *);
extern int TIFFGetMode(TIFF *);
extern TIFFReadWriteProc TIFFGetReadProc(TIFF *);
extern TIFFSeekProc TIFFGetSeekProc(TIFF *);
extern TIFFSizeProc TIFFGetSizeProc(TIFF *);
extern int TIFFGetTagListCount(TIFF *);
extern uint32 TIFFGetTagListEntry(TIFF *, int tag_index);
extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF *);
extern const char *TIFFGetVersion(void);
extern TIFFReadWriteProc TIFFGetWriteProc(TIFF *);
extern int TIFFIsBigEndian(TIFF *);
extern int TIFFIsByteSwapped(TIFF *);
extern int TIFFIsCODECConfigured(uint16);
extern int TIFFIsMSB2LSB(TIFF *);
extern int TIFFIsTiled(TIFF *);
extern int TIFFIsUpSampled(TIFF *);
extern int TIFFLastDirectory(TIFF *);
extern uint16 TIFFNumberOfDirectories(TIFF *);
extern uint32 TIFFNumberOfStrips(TIFF *);
extern uint32 TIFFNumberOfTiles(TIFF *);
extern TIFF *TIFFOpen(const char *, const char *);
extern void TIFFPrintDirectory(TIFF *, FILE *, long int);
extern int TIFFRGBAImageBegin(TIFFRGBAImage *, TIFF *, int, char *);
extern void TIFFRGBAImageEnd(TIFFRGBAImage *);
extern int TIFFRGBAImageGet(TIFFRGBAImage *, uint32 *, uint32, uint32);
extern int TIFFRGBAImageOK(TIFF *, char *);
extern tmsize_t TIFFRasterScanlineSize(TIFF * tif);
extern uint64 TIFFRasterScanlineSize64(TIFF * tif);
extern tmsize_t TIFFRawStripSize(TIFF * tif, uint32 strip);
extern uint64 TIFFRawStripSize64(TIFF * tif, uint32 strip);
extern int TIFFReadBufferSetup(TIFF * tif, void *bp, tmsize_t size);
extern int TIFFReadCustomDirectory(TIFF * tif, toff_t diroff,
				   const TIFFFieldArray * infoarray);
extern int TIFFReadDirectory(TIFF * tif);
extern int TIFFReadEXIFDirectory(TIFF * tif, toff_t diroff);
extern tmsize_t TIFFReadEncodedStrip(TIFF * tif, uint32 strip, void *buf,
				     tmsize_t size);
extern tmsize_t TIFFReadEncodedTile(TIFF * tif, uint32 tile, void *buf,
				    tmsize_t size);
extern int TIFFReadRGBAImage(TIFF *, uint32, uint32, uint32 *, int);
extern int TIFFReadRGBAImageOriented(TIFF *, uint32, uint32, uint32 *, int,
				     int);
extern int TIFFReadRGBAStrip(TIFF *, uint32, uint32 *);
extern int TIFFReadRGBATile(TIFF *, uint32, uint32, uint32 *);
extern tmsize_t TIFFReadRawStrip(TIFF * tif, uint32 strip, void *buf,
				 tmsize_t size);
extern tmsize_t TIFFReadRawTile(TIFF * tif, uint32 tile, void *buf,
				tmsize_t size);
extern int TIFFReadScanline(TIFF * tif, void *buf, uint32 row,
			    uint16 sample);
extern tmsize_t TIFFReadTile(TIFF * tif, void *buf, uint32 x, uint32 y,
			     uint32 z, uint16 s);
extern TIFFCodec *TIFFRegisterCODEC(uint16, const char *, TIFFInitMethod);
extern void TIFFReverseBits(uint8 * cp, tmsize_t n);
extern int TIFFRewriteDirectory(TIFF *);
extern tmsize_t TIFFScanlineSize(TIFF * tif);
extern uint64 TIFFScanlineSize64(TIFF * tif);
extern void TIFFSetClientInfo(TIFF *, void *, const char *);
extern thandle_t TIFFSetClientdata(TIFF *, thandle_t);
extern int TIFFSetDirectory(TIFF *, uint16);
extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt);
extern int TIFFSetField(TIFF *, uint32, ...);
extern const char *TIFFSetFileName(TIFF *, const char *);
extern int TIFFSetFileno(TIFF *, int);
extern int TIFFSetMode(TIFF *, int);
extern int TIFFSetSubDirectory(TIFF *, uint64);
extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt);
extern void TIFFSetWriteOffset(TIFF * tif, toff_t off);
extern int TIFFSetupStrips(TIFF *);
extern tmsize_t TIFFStripSize(TIFF * tif);
extern uint64 TIFFStripSize64(TIFF * tif);
extern void TIFFSwabArrayOfDouble(double *dp, tmsize_t n);
extern void TIFFSwabArrayOfFloat(float *fp, tmsize_t n);
extern void TIFFSwabArrayOfLong(uint32 * lp, tmsize_t n);
extern void TIFFSwabArrayOfLong8(uint64 * lp, tmsize_t n);
extern void TIFFSwabArrayOfShort(uint16 * wp, tmsize_t n);
extern void TIFFSwabArrayOfTriples(uint8 * tp, tmsize_t n);
extern void TIFFSwabDouble(double *);
extern void TIFFSwabFloat(float *);
extern void TIFFSwabLong(uint32 *);
extern void TIFFSwabLong8(uint64 *);
extern void TIFFSwabShort(uint16 *);
extern tmsize_t TIFFTileRowSize(TIFF * tif);
extern uint64 TIFFTileRowSize64(TIFF * tif);
extern tmsize_t TIFFTileSize(TIFF * tif);
extern uint64 TIFFTileSize64(TIFF * tif);
extern void TIFFUnRegisterCODEC(TIFFCodec *);
extern int TIFFUnlinkDirectory(TIFF *, uint16);
extern int TIFFUnsetField(TIFF *, uint32);
extern int TIFFVGetField(TIFF * tif, uint32 tag, va_list ap);
extern int TIFFVGetFieldDefaulted(TIFF * tif, uint32 tag, va_list ap);
extern int TIFFVSetField(TIFF *, uint32, va_list);
extern tmsize_t TIFFVStripSize(TIFF * tif, uint32 nrows);
extern uint64 TIFFVStripSize64(TIFF * tif, uint32 nrows);
extern tmsize_t TIFFVTileSize(TIFF * tif, uint32 nrows);
extern uint64 TIFFVTileSize64(TIFF * tif, uint32 nrows);
extern void TIFFWarning(const char *, const char *, ...);
extern void TIFFWarningExt(thandle_t, const char *, const char *, ...);
extern int TIFFWriteBufferSetup(TIFF * tif, void *bp, tmsize_t size);
extern int TIFFWriteCheck(TIFF *, int, const char *);
extern int TIFFWriteCustomDirectory(TIFF *, uint64 *);
extern int TIFFWriteDirectory(TIFF *);
extern tmsize_t TIFFWriteEncodedStrip(TIFF * tif, uint32 strip, void *data,
				      tmsize_t cc);
extern tmsize_t TIFFWriteEncodedTile(TIFF * tif, uint32 tile, void *data,
				     tmsize_t cc);
extern tmsize_t TIFFWriteRawStrip(TIFF * tif, uint32 strip, void *data,
				  tmsize_t cc);
extern tmsize_t TIFFWriteRawTile(TIFF * tif, uint32 tile, void *data,
				 tmsize_t cc);
extern int TIFFWriteScanline(TIFF * tif, void *buf, uint32 row,
			     uint16 sample);
extern tmsize_t TIFFWriteTile(TIFF * tif, void *buf, uint32 x, uint32 y,
			      uint32 z, uint16 s);
extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, uint32 *,
			 uint32 *, uint32 *);
extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB *, float *, float *);
extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32,
			   uint32 *, uint32 *, uint32 *);
extern void XYZtoRGB24(float *, uint8 *);
extern void _TIFFfree(void *p);
extern void *_TIFFmalloc(tmsize_t s);
extern int _TIFFmemcmp(const void *p1, const void *p2, tmsize_t c);
extern void _TIFFmemcpy(void *d, const void *s, tmsize_t c);
extern void _TIFFmemset(void *p, int v, tmsize_t c);
extern void *_TIFFrealloc(void *p, tmsize_t s);
extern int uv_decode(double *, double *, int);
extern int uv_encode(double, double, int);

16.2.4. tiffvers.h


#define TIFFLIB_VERSION	20120615