30 #define EXIFOFFSETTAG 0x8769
31 #define INTEROPERABILITYOFFSET 0xA005
32 #define GPSOFFSETTAG 0x8825
33 #define MAXSTRINGLENGTH 65535
35 #ifdef RENAME_INTERNAL_LIBTIFF_SYMBOLS
36 #include "../frmts/gtiff/libtiff/gdal_libtiff_symbol_rename.h"
39 static const struct gpsname {
43 { 0x00,
"EXIF_GPSVersionID" },
44 { 0x01,
"EXIF_GPSLatitudeRef" },
45 { 0x02,
"EXIF_GPSLatitude" },
46 { 0x03,
"EXIF_GPSLongitudeRef" },
47 { 0x04,
"EXIF_GPSLongitude" },
48 { 0x05,
"EXIF_GPSAltitudeRef" },
49 { 0x06,
"EXIF_GPSAltitude" },
50 { 0x07,
"EXIF_GPSTimeStamp" },
51 { 0x08,
"EXIF_GPSSatellites" },
52 { 0x09,
"EXIF_GPSStatus" },
53 { 0x0a,
"EXIF_GPSMeasureMode" },
54 { 0x0b,
"EXIF_GPSDOP" },
55 { 0x0c,
"EXIF_GPSSpeedRef"},
56 { 0x0d,
"EXIF_GPSSpeed"},
57 { 0x0e,
"EXIF_GPSTrackRef"},
58 { 0x0f,
"EXIF_GPSTrack"},
59 { 0x10,
"EXIF_GPSImgDirectionRef"},
60 { 0x11,
"EXIF_GPSImgDirection"},
61 { 0x12,
"EXIF_GPSMapDatum"},
62 { 0x13,
"EXIF_GPSDestLatitudeRef"},
63 { 0x14,
"EXIF_GPSDestLatitude"},
64 { 0x15,
"EXIF_GPSDestLongitudeRef"},
65 { 0x16,
"EXIF_GPSDestLongitude"},
66 { 0x17,
"EXIF_GPSDestBearingRef"},
67 { 0x18,
"EXIF_GPSDestBearing"},
68 { 0x19,
"EXIF_GPSDestDistanceRef"},
69 { 0x1a,
"EXIF_GPSDestDistance"},
70 { 0x1b,
"EXIF_GPSProcessingMethod"},
71 { 0x1c,
"EXIF_GPSAreaInformation"},
72 { 0x1d,
"EXIF_GPSDateStamp"},
73 { 0x1e,
"EXIF_GPSDifferential"},
77 static const struct tagname {
84 { 0x102,
"EXIF_BitsPerSample"},
85 { 0x103,
"EXIF_Compression"},
86 { 0x106,
"EXIF_PhotometricInterpretation"},
87 { 0x10A,
"EXIF_Fill_Order"},
88 { 0x10D,
"EXIF_Document_Name"},
89 { 0x10E,
"EXIF_ImageDescription"},
90 { 0x10F,
"EXIF_Make"},
91 { 0x110,
"EXIF_Model"},
92 { 0x111,
"EXIF_StripOffsets"},
93 { 0x112,
"EXIF_Orientation"},
94 { 0x115,
"EXIF_SamplesPerPixel"},
95 { 0x116,
"EXIF_RowsPerStrip"},
96 { 0x117,
"EXIF_StripByteCounts"},
97 { 0x11A,
"EXIF_XResolution"},
98 { 0x11B,
"EXIF_YResolution"},
99 { 0x11C,
"EXIF_PlanarConfiguration"},
100 { 0x128,
"EXIF_ResolutionUnit"},
101 { 0x12D,
"EXIF_TransferFunction"},
102 { 0x131,
"EXIF_Software"},
103 { 0x132,
"EXIF_DateTime"},
104 { 0x13B,
"EXIF_Artist"},
105 { 0x13E,
"EXIF_WhitePoint"},
106 { 0x13F,
"EXIF_PrimaryChromaticities"},
107 { 0x156,
"EXIF_Transfer_Range"},
108 { 0x200,
"EXIF_JPEG_Proc"},
109 { 0x201,
"EXIF_JPEGInterchangeFormat"},
110 { 0x202,
"EXIF_JPEGInterchangeFormatLength"},
111 { 0x211,
"EXIF_YCbCrCoefficients"},
112 { 0x212,
"EXIF_YCbCrSubSampling"},
113 { 0x213,
"EXIF_YCbCrPositioning"},
114 { 0x214,
"EXIF_ReferenceBlackWhite"},
115 { 0x828D,
"EXIF_CFA_Repeat_Pattern_Dim"},
116 { 0x828E,
"EXIF_CFA_Pattern"},
117 { 0x828F,
"EXIF_Battery_Level"},
118 { 0x8298,
"EXIF_Copyright"},
119 { 0x829A,
"EXIF_ExposureTime"},
120 { 0x829D,
"EXIF_FNumber"},
121 { 0x83BB,
"EXIF_IPTC/NAA"},
123 { 0x8773,
"EXIF_Inter_Color_Profile"},
124 { 0x8822,
"EXIF_ExposureProgram"},
125 { 0x8824,
"EXIF_SpectralSensitivity"},
127 { 0x8827,
"EXIF_ISOSpeedRatings"},
128 { 0x8828,
"EXIF_OECF"},
129 { 0x9000,
"EXIF_ExifVersion"},
130 { 0x9003,
"EXIF_DateTimeOriginal"},
131 { 0x9004,
"EXIF_DateTimeDigitized"},
132 { 0x9101,
"EXIF_ComponentsConfiguration"},
133 { 0x9102,
"EXIF_CompressedBitsPerPixel"},
134 { 0x9201,
"EXIF_ShutterSpeedValue"},
135 { 0x9202,
"EXIF_ApertureValue"},
136 { 0x9203,
"EXIF_BrightnessValue"},
137 { 0x9204,
"EXIF_ExposureBiasValue"},
138 { 0x9205,
"EXIF_MaxApertureValue"},
139 { 0x9206,
"EXIF_SubjectDistance"},
140 { 0x9207,
"EXIF_MeteringMode"},
141 { 0x9208,
"EXIF_LightSource"},
142 { 0x9209,
"EXIF_Flash"},
143 { 0x920A,
"EXIF_FocalLength"},
144 { 0x9214,
"EXIF_SubjectArea"},
145 { 0x927C,
"EXIF_MakerNote"},
146 { 0x9286,
"EXIF_UserComment"},
147 { 0x9290,
"EXIF_SubSecTime"},
148 { 0x9291,
"EXIF_SubSecTime_Original"},
149 { 0x9292,
"EXIF_SubSecTime_Digitized"},
150 { 0xA000,
"EXIF_FlashpixVersion"},
151 { 0xA001,
"EXIF_ColorSpace"},
152 { 0xA002,
"EXIF_PixelXDimension"},
153 { 0xA003,
"EXIF_PixelYDimension"},
154 { 0xA004,
"EXIF_RelatedSoundFile"},
156 { 0xA20B,
"EXIF_FlashEnergy"},
157 { 0xA20C,
"EXIF_SpatialFrequencyResponse"},
158 { 0xA20E,
"EXIF_FocalPlaneXResolution"},
159 { 0xA20F,
"EXIF_FocalPlaneYResolution"},
160 { 0xA210,
"EXIF_FocalPlaneResolutionUnit"},
161 { 0xA214,
"EXIF_SubjectLocation"},
162 { 0xA215,
"EXIF_ExposureIndex"},
163 { 0xA217,
"EXIF_SensingMethod"},
164 { 0xA300,
"EXIF_FileSource"},
165 { 0xA301,
"EXIF_SceneType"},
166 { 0xA302,
"EXIF_CFAPattern"},
167 { 0xA401,
"EXIF_CustomRendered"},
168 { 0xA402,
"EXIF_ExposureMode"},
169 { 0XA403,
"EXIF_WhiteBalance"},
170 { 0xA404,
"EXIF_DigitalZoomRatio"},
171 { 0xA405,
"EXIF_FocalLengthIn35mmFilm"},
172 { 0xA406,
"EXIF_SceneCaptureType"},
173 { 0xA407,
"EXIF_GainControl"},
174 { 0xA408,
"EXIF_Contrast"},
175 { 0xA409,
"EXIF_Saturation"},
176 { 0xA40A,
"EXIF_Sharpness"},
177 { 0xA40B,
"EXIF_DeviceSettingDescription"},
178 { 0xA40C,
"EXIF_SubjectDistanceRange"},
179 { 0xA420,
"EXIF_ImageUniqueID"},
184 static const struct intr_tag {
189 { 0x1,
"EXIF_Interoperability_Index"},
190 { 0x2,
"EXIF_Interoperability_Version"},
191 { 0x1000,
"EXIF_Related_Image_File_Format"},
192 { 0x1001,
"EXIF_Related_Image_Width"},
193 { 0x1002,
"EXIF_Related_Image_Length"},
233 extern int TIFFDataWidth(TIFFDataType);
234 extern void TIFFSwabShort(GUInt16*);
235 extern void TIFFSwabLong(GUInt32*);
236 extern void TIFFSwabDouble(
double*);
237 extern void TIFFSwabArrayOfShort(GUInt16*,
unsigned long);
238 extern void TIFFSwabArrayOfLong(GUInt32*,
unsigned long);
239 extern void TIFFSwabArrayOfDouble(
double*,
unsigned long);