FFmpeg
tiff.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006 Konstantin Shishkov
3  *
4  * This file is part of FFmpeg.
5  *
6  * FFmpeg is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * FFmpeg is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with FFmpeg; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
30 #ifndef AVCODEC_TIFF_H
31 #define AVCODEC_TIFF_H
32 
33 #include <stdint.h>
34 #include "tiff_common.h"
35 
37 enum TiffTags {
38  TIFF_SUBFILE = 0xfe,
39  TIFF_WIDTH = 0x100,
40  TIFF_HEIGHT,
41  TIFF_BPP,
42  TIFF_COMPR,
43  TIFF_PHOTOMETRIC = 0x106,
44  TIFF_FILL_ORDER = 0x10A,
45  TIFF_DOCUMENT_NAME = 0x10D,
46  TIFF_IMAGE_DESCRIPTION = 0x10E,
47  TIFF_MAKE = 0x10F,
48  TIFF_MODEL = 0x110,
49  TIFF_STRIP_OFFS = 0x111,
50  TIFF_SAMPLES_PER_PIXEL = 0x115,
51  TIFF_ROWSPERSTRIP = 0x116,
52  TIFF_STRIP_SIZE,
53  TIFF_XRES = 0x11A,
54  TIFF_YRES = 0x11B,
55  TIFF_PLANAR = 0x11C,
56  TIFF_PAGE_NAME = 0x11D,
57  TIFF_XPOS = 0x11E,
58  TIFF_YPOS = 0x11F,
59  TIFF_T4OPTIONS = 0x124,
60  TIFF_T6OPTIONS,
61  TIFF_RES_UNIT = 0x128,
62  TIFF_PAGE_NUMBER = 0x129,
63  TIFF_SOFTWARE_NAME = 0x131,
64  TIFF_DATE = 0x132,
65  TIFF_ARTIST = 0x13B,
66  TIFF_HOST_COMPUTER = 0x13C,
67  TIFF_PREDICTOR = 0x13D,
68  TIFF_PAL = 0x140,
69  TIFF_TILE_WIDTH = 0x142,
70  TIFF_TILE_LENGTH = 0x143,
71  TIFF_TILE_OFFSETS = 0x144,
72  TIFF_TILE_BYTE_COUNTS = 0x145,
73  TIFF_EXTRASAMPLES = 0x152,
74  TIFF_YCBCR_COEFFICIENTS = 0x211,
75  TIFF_YCBCR_SUBSAMPLING = 0x212,
76  TIFF_YCBCR_POSITIONING = 0x213,
77  TIFF_REFERENCE_BW = 0x214,
78  TIFF_COPYRIGHT = 0x8298,
79  TIFF_MODEL_TIEPOINT = 0x8482,
80  TIFF_MODEL_PIXEL_SCALE = 0x830E,
81  TIFF_MODEL_TRANSFORMATION= 0x8480,
82  TIFF_GEO_KEY_DIRECTORY = 0x87AF,
83  TIFF_GEO_DOUBLE_PARAMS = 0x87B0,
84  TIFF_GEO_ASCII_PARAMS = 0x87B1
85 };
86 
88 enum TiffCompr {
89  TIFF_RAW = 1,
90  TIFF_CCITT_RLE,
91  TIFF_G3,
92  TIFF_G4,
93  TIFF_LZW,
94  TIFF_JPEG,
95  TIFF_NEWJPEG,
96  TIFF_ADOBE_DEFLATE,
97  TIFF_PACKBITS = 0x8005,
98  TIFF_DEFLATE = 0x80B2,
99  TIFF_LZMA = 0x886D,
100 };
101 
102 enum TiffGeoTagKey {
103  TIFF_GT_MODEL_TYPE_GEOKEY = 1024,
104  TIFF_GT_RASTER_TYPE_GEOKEY = 1025,
105  TIFF_GT_CITATION_GEOKEY = 1026,
106  TIFF_GEOGRAPHIC_TYPE_GEOKEY = 2048,
107  TIFF_GEOG_CITATION_GEOKEY = 2049,
108  TIFF_GEOG_GEODETIC_DATUM_GEOKEY = 2050,
109  TIFF_GEOG_PRIME_MERIDIAN_GEOKEY = 2051,
110  TIFF_GEOG_LINEAR_UNITS_GEOKEY = 2052,
111  TIFF_GEOG_LINEAR_UNIT_SIZE_GEOKEY = 2053,
112  TIFF_GEOG_ANGULAR_UNITS_GEOKEY = 2054,
113  TIFF_GEOG_ANGULAR_UNIT_SIZE_GEOKEY = 2055,
114  TIFF_GEOG_ELLIPSOID_GEOKEY = 2056,
115  TIFF_GEOG_SEMI_MAJOR_AXIS_GEOKEY = 2057,
116  TIFF_GEOG_SEMI_MINOR_AXIS_GEOKEY = 2058,
117  TIFF_GEOG_INV_FLATTENING_GEOKEY = 2059,
118  TIFF_GEOG_AZIMUTH_UNITS_GEOKEY = 2060,
119  TIFF_GEOG_PRIME_MERIDIAN_LONG_GEOKEY = 2061,
120  TIFF_PROJECTED_CS_TYPE_GEOKEY = 3072,
121  TIFF_PCS_CITATION_GEOKEY = 3073,
122  TIFF_PROJECTION_GEOKEY = 3074,
123  TIFF_PROJ_COORD_TRANS_GEOKEY = 3075,
124  TIFF_PROJ_LINEAR_UNITS_GEOKEY = 3076,
125  TIFF_PROJ_LINEAR_UNIT_SIZE_GEOKEY = 3077,
126  TIFF_PROJ_STD_PARALLEL1_GEOKEY = 3078,
127  TIFF_PROJ_STD_PARALLEL2_GEOKEY = 3079,
128  TIFF_PROJ_NAT_ORIGIN_LONG_GEOKEY = 3080,
129  TIFF_PROJ_NAT_ORIGIN_LAT_GEOKEY = 3081,
130  TIFF_PROJ_FALSE_EASTING_GEOKEY = 3082,
131  TIFF_PROJ_FALSE_NORTHING_GEOKEY = 3083,
132  TIFF_PROJ_FALSE_ORIGIN_LONG_GEOKEY = 3084,
133  TIFF_PROJ_FALSE_ORIGIN_LAT_GEOKEY = 3085,
134  TIFF_PROJ_FALSE_ORIGIN_EASTING_GEOKEY = 3086,
135  TIFF_PROJ_FALSE_ORIGIN_NORTHING_GEOKEY = 3087,
136  TIFF_PROJ_CENTER_LONG_GEOKEY = 3088,
137  TIFF_PROJ_CENTER_LAT_GEOKEY = 3089,
138  TIFF_PROJ_CENTER_EASTING_GEOKEY = 3090,
139  TIFF_PROJ_CENTER_NORTHING_GEOKEY = 3091,
140  TIFF_PROJ_SCALE_AT_NAT_ORIGIN_GEOKEY = 3092,
141  TIFF_PROJ_SCALE_AT_CENTER_GEOKEY = 3093,
142  TIFF_PROJ_AZIMUTH_ANGLE_GEOKEY = 3094,
143  TIFF_PROJ_STRAIGHT_VERT_POLE_LONG_GEOKEY = 3095,
144  TIFF_VERTICAL_CS_TYPE_GEOKEY = 4096,
145  TIFF_VERTICAL_CITATION_GEOKEY = 4097,
146  TIFF_VERTICAL_DATUM_GEOKEY = 4098,
147  TIFF_VERTICAL_UNITS_GEOKEY = 4099
148 };
149 
150 enum TiffPhotometric {
151  TIFF_PHOTOMETRIC_NONE = -1,
152  TIFF_PHOTOMETRIC_WHITE_IS_ZERO, /* mono or grayscale, 0 is white */
153  TIFF_PHOTOMETRIC_BLACK_IS_ZERO, /* mono or grayscale, 0 is black */
154  TIFF_PHOTOMETRIC_RGB, /* RGB or RGBA*/
155  TIFF_PHOTOMETRIC_PALETTE, /* Uses a palette */
156  TIFF_PHOTOMETRIC_ALPHA_MASK, /* Transparency mask */
157  TIFF_PHOTOMETRIC_SEPARATED, /* CMYK or some other ink set */
158  TIFF_PHOTOMETRIC_YCBCR, /* YCbCr */
159  TIFF_PHOTOMETRIC_CIE_LAB = 8, /* 1976 CIE L*a*b* */
160  TIFF_PHOTOMETRIC_ICC_LAB, /* ICC L*a*b* */
161  TIFF_PHOTOMETRIC_ITU_LAB, /* ITU L*a*b* */
162  TIFF_PHOTOMETRIC_CFA = 32803, /* Color Filter Array (DNG) */
163  TIFF_PHOTOMETRIC_LOG_L = 32844, /* CIE Log2(L) */
164  TIFF_PHOTOMETRIC_LOG_LUV, /* CIE Log L*u*v* */
165  TIFF_PHOTOMETRIC_LINEAR_RAW = 34892, /* Linear Raw (DNG) */
166 };
167 
168 enum TiffGeoTagType {
169  GEOTIFF_SHORT = 0,
170  GEOTIFF_DOUBLE = 34736,
171  GEOTIFF_STRING = 34737
172 };
173 
174 typedef struct TiffGeoTag {
175  enum TiffGeoTagKey key;
176  enum TiffTags type;
177  int count;
178  int offset;
179  char *val;
180 } TiffGeoTag;
181 
182 typedef struct TiffGeoTagKeyName {
183  const enum TiffGeoTagKey key;
184  const char *const name;
186 
187 typedef struct TiffGeoTagNameType {
188  const char *const name;
189  const enum TiffGeoTagType type;
191 
192 #endif /* AVCODEC_TIFF_H */
TIFF Common Routines.
Definition: tiff.h:174
Definition: tiff.h:187
TiffCompr
list of TIFF compression types
Definition: tiff.h:88
Definition: tiff.h:182
TiffTags
abridged list of TIFF tags
Definition: tiff.h:37