📄 tiff.h
字号:
/* $Header: /cvsroot/osrs/libtiff/libtiff/tiff.h,v 1.19 2003/12/20 13:40:09 dron Exp $ *//* * Copyright (c) 1988-1997 Sam Leffler * Copyright (c) 1991-1997 Silicon Graphics, Inc. * * Permission to use, copy, modify, distribute, and sell this software and * its documentation for any purpose is hereby granted without fee, provided * that (i) the above copyright notices and this permission notice appear in * all copies of the software and related documentation, and (ii) the names of * Sam Leffler and Silicon Graphics may not be used in any advertising or * publicity relating to the software without the specific, prior written * permission of Sam Leffler and Silicon Graphics. * * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */#ifndef _TIFF_#define _TIFF_/* * Tag Image File Format (TIFF) * * Based on Rev 6.0 from: * Developer's Desk * Aldus Corporation * 411 First Ave. South * Suite 200 * Seattle, WA 98104 * 206-622-5500 */#define TIFF_VERSION 42#define TIFF_BIGENDIAN 0x4d4d#define TIFF_LITTLEENDIAN 0x4949/* * The so called TIFF types conflict with definitions from inttypes.h * included from sys/types.h on AIX (at least using VisualAge compiler). * We try to work around this by detecting this case. Defining * _TIFF_DATA_TYPEDEFS_ short circuits the later definitions in tiff.h, and * we will in the holes not provided for by inttypes.h. * * See http://bugzilla.remotesensing.org/show_bug.cgi?id=39 */#if defined(_H_INTTYPES) && defined(_ALL_SOURCE) && defined(USING_VISUALAGE)#define _TIFF_DATA_TYPEDEFS_typedef unsigned char uint8;typedef unsigned short uint16;typedef unsigned int uint32;#endif/* * Intrinsic data types required by the file format: * * 8-bit quantities int8/uint8 * 16-bit quantities int16/uint16 * 32-bit quantities int32/uint32 * strings unsigned char* */#ifndef _TIFF_DATA_TYPEDEFS_#define _TIFF_DATA_TYPEDEFS_#ifdef __STDC__typedef signed char int8; /* NB: non-ANSI compilers may not grok */#elsetypedef char int8;#endiftypedef unsigned char uint8;typedef short int16;typedef unsigned short uint16; /* sizeof (uint16) must == 2 */#if defined(__alpha) || (defined(_MIPS_SZLONG) && _MIPS_SZLONG == 64) || defined(__LP64__) || defined(__arch64__)typedef int int32;typedef unsigned int uint32; /* sizeof (uint32) must == 4 */#elsetypedef long int32;typedef unsigned long uint32; /* sizeof (uint32) must == 4 */#endif#endif /* _TIFF_DATA_TYPEDEFS_ *//* For TIFFReassignTagToIgnore */enum TIFFIgnoreSense /* IGNORE tag table */{ TIS_STORE, TIS_EXTRACT, TIS_EMPTY};typedef struct { uint16 tiff_magic; /* magic number (defines byte order) */ uint16 tiff_version; /* TIFF version number */ uint32 tiff_diroff; /* byte offset to first directory */} TIFFHeader;/* * TIFF Image File Directories are comprised of * a table of field descriptors of the form shown * below. The table is sorted in ascending order * by tag. The values associated with each entry * are disjoint and may appear anywhere in the file * (so long as they are placed on a word boundary). * * If the value is 4 bytes or less, then it is placed * in the offset field to save space. If the value * is less than 4 bytes, it is left-justified in the * offset field. */typedef struct { uint16 tdir_tag; /* see below */ uint16 tdir_type; /* data type; see below */ uint32 tdir_count; /* number of items; length in spec */ uint32 tdir_offset; /* byte offset to field data */} TIFFDirEntry;/* * NB: In the comments below, * - items marked with a + are obsoleted by revision 5.0, * - items marked with a ! are introduced in revision 6.0. * - items marked with a % are introduced post revision 6.0. * - items marked with a $ are obsoleted by revision 6.0. *//* * Tag data type information. * * Note: RATIONALs are the ratio of two 32-bit integer values. */typedef enum { TIFF_NOTYPE = 0, /* placeholder */ TIFF_BYTE = 1, /* 8-bit unsigned integer */ TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ TIFF_SHORT = 3, /* 16-bit unsigned integer */ TIFF_LONG = 4, /* 32-bit unsigned integer */ TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ TIFF_SBYTE = 6, /* !8-bit signed integer */ TIFF_UNDEFINED = 7, /* !8-bit untyped data */ TIFF_SSHORT = 8, /* !16-bit signed integer */ TIFF_SLONG = 9, /* !32-bit signed integer */ TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ TIFF_IFD = 13 /* %32-bit unsigned integer (offset) */} TIFFDataType;/* * TIFF Tag Definitions. */#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */#define FILETYPE_PAGE 0x2 /* one page of many */#define FILETYPE_MASK 0x4 /* transparency mask */#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */#define OFILETYPE_IMAGE 1 /* full resolution image data */#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */#define OFILETYPE_PAGE 3 /* one page of many */#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */#define TIFFTAG_COMPRESSION 259 /* data compression technique */#define COMPRESSION_NONE 1 /* dump mode */#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE *//* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */#define COMPRESSION_IT8CTPAD 32895 /* IT8 CT w/padding */#define COMPRESSION_IT8LW 32896 /* IT8 Linework RLE */#define COMPRESSION_IT8MP 32897 /* IT8 Monochrome picture */#define COMPRESSION_IT8BL 32898 /* IT8 Binary line art *//* compression codes 32908-32911 are reserved for Pixar */#define COMPRESSION_PIXARFILM 32908 /* Pixar companded 10bit LZW */#define COMPRESSION_PIXARLOG 32909 /* Pixar companded 11bit ZIP */#define COMPRESSION_DEFLATE 32946 /* Deflate compression */#define COMPRESSION_ADOBE_DEFLATE 8 /* Deflate compression, as recognized by Adobe *//* compression code 32947 is reserved for Oceana Matrix <dev@oceana.com> */#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */#define COMPRESSION_JBIG 34661 /* ISO JBIG */#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */#define PHOTOMETRIC_RGB 2 /* RGB color model */#define PHOTOMETRIC_PALETTE 3 /* color map indexed */#define PHOTOMETRIC_MASK 4 /* $holdout mask */#define PHOTOMETRIC_SEPARATED 5 /* !color separations */#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */#define THRESHHOLD_BILEVEL 1 /* b&w art scan */#define THRESHHOLD_HALFTONE 2 /* or dithered scan */#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */#define TIFFTAG_FILLORDER 266 /* data order within a byte */#define FILLORDER_MSB2LSB 1 /* most significant -> least */#define FILLORDER_LSB2MSB 2 /* least significant -> most */#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */#define TIFFTAG_MAKE 271 /* scanner manufacturer name */#define TIFFTAG_MODEL 272 /* scanner model name/number */#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */#define TIFFTAG_ORIENTATION 274 /* +image orientation */#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */#define TIFFTAG_PLANARCONFIG 284 /* storage organization */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -