EXIF library (libexif) API  0.6.25
exif-tag.h
Go to the documentation of this file.
1 
4 /*
5  * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301 USA.
21  *
22  * SPDX-License-Identifier: LGPL-2.0-or-later
23  */
24 
25 #ifndef LIBEXIF_EXIF_TAG_H
26 #define LIBEXIF_EXIF_TAG_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif /* __cplusplus */
31 
32 #include <libexif/exif-ifd.h>
33 #include <libexif/exif-data-type.h>
34 
36 typedef enum {
37  EXIF_TAG_INTEROPERABILITY_INDEX = 0x0001,
38  EXIF_TAG_INTEROPERABILITY_VERSION = 0x0002,
39  EXIF_TAG_NEW_SUBFILE_TYPE = 0x00fe,
40  EXIF_TAG_IMAGE_WIDTH = 0x0100,
41  EXIF_TAG_IMAGE_LENGTH = 0x0101,
42  EXIF_TAG_BITS_PER_SAMPLE = 0x0102,
43  EXIF_TAG_COMPRESSION = 0x0103,
44  EXIF_TAG_PHOTOMETRIC_INTERPRETATION = 0x0106,
45  EXIF_TAG_FILL_ORDER = 0x010a,
46  EXIF_TAG_DOCUMENT_NAME = 0x010d,
47  EXIF_TAG_IMAGE_DESCRIPTION = 0x010e,
48  EXIF_TAG_MAKE = 0x010f,
49  EXIF_TAG_MODEL = 0x0110,
50  EXIF_TAG_STRIP_OFFSETS = 0x0111,
51  EXIF_TAG_ORIENTATION = 0x0112,
52  EXIF_TAG_SAMPLES_PER_PIXEL = 0x0115,
53  EXIF_TAG_ROWS_PER_STRIP = 0x0116,
54  EXIF_TAG_STRIP_BYTE_COUNTS = 0x0117,
55  EXIF_TAG_X_RESOLUTION = 0x011a,
56  EXIF_TAG_Y_RESOLUTION = 0x011b,
57  EXIF_TAG_PLANAR_CONFIGURATION = 0x011c,
58  EXIF_TAG_RESOLUTION_UNIT = 0x0128,
59  EXIF_TAG_TRANSFER_FUNCTION = 0x012d,
60  EXIF_TAG_SOFTWARE = 0x0131,
61  EXIF_TAG_DATE_TIME = 0x0132,
62  EXIF_TAG_ARTIST = 0x013b,
63  EXIF_TAG_WHITE_POINT = 0x013e,
64  EXIF_TAG_PRIMARY_CHROMATICITIES = 0x013f,
65  EXIF_TAG_SUB_IFDS = 0x014a,
66  EXIF_TAG_TRANSFER_RANGE = 0x0156,
67  EXIF_TAG_JPEG_PROC = 0x0200,
68  EXIF_TAG_JPEG_INTERCHANGE_FORMAT = 0x0201,
69  EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202,
70  EXIF_TAG_YCBCR_COEFFICIENTS = 0x0211,
71  EXIF_TAG_YCBCR_SUB_SAMPLING = 0x0212,
72  EXIF_TAG_YCBCR_POSITIONING = 0x0213,
73  EXIF_TAG_REFERENCE_BLACK_WHITE = 0x0214,
74  EXIF_TAG_XML_PACKET = 0x02bc,
75  EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = 0x1000,
76  EXIF_TAG_RELATED_IMAGE_WIDTH = 0x1001,
77  EXIF_TAG_RELATED_IMAGE_LENGTH = 0x1002,
78  EXIF_TAG_IMAGE_DEPTH = 0x80e5,
79  EXIF_TAG_CFA_REPEAT_PATTERN_DIM = 0x828d,
80  EXIF_TAG_CFA_PATTERN = 0x828e,
81  EXIF_TAG_BATTERY_LEVEL = 0x828f,
82  EXIF_TAG_COPYRIGHT = 0x8298,
83  EXIF_TAG_EXPOSURE_TIME = 0x829a,
84  EXIF_TAG_FNUMBER = 0x829d,
85  EXIF_TAG_IPTC_NAA = 0x83bb,
86  EXIF_TAG_IMAGE_RESOURCES = 0x8649,
87  EXIF_TAG_EXIF_IFD_POINTER = 0x8769,
88  EXIF_TAG_INTER_COLOR_PROFILE = 0x8773,
89  EXIF_TAG_EXPOSURE_PROGRAM = 0x8822,
90  EXIF_TAG_SPECTRAL_SENSITIVITY = 0x8824,
91  EXIF_TAG_GPS_INFO_IFD_POINTER = 0x8825,
92  EXIF_TAG_ISO_SPEED_RATINGS = 0x8827,
93  EXIF_TAG_OECF = 0x8828,
94  EXIF_TAG_TIME_ZONE_OFFSET = 0x882a,
95  EXIF_TAG_SENSITIVITY_TYPE = 0x8830,
96  EXIF_TAG_STANDARD_OUTPUT_SENSITIVITY = 0x8831,
97  EXIF_TAG_RECOMMENDED_EXPOSURE_INDEX = 0x8832,
98  EXIF_TAG_ISO_SPEED = 0x8833,
99  EXIF_TAG_ISO_SPEEDLatitudeYYY = 0x8834,
100  EXIF_TAG_ISO_SPEEDLatitudeZZZ = 0x8835,
101  EXIF_TAG_EXIF_VERSION = 0x9000,
102  EXIF_TAG_DATE_TIME_ORIGINAL = 0x9003,
103  EXIF_TAG_DATE_TIME_DIGITIZED = 0x9004,
104  EXIF_TAG_OFFSET_TIME = 0x9010,
105  EXIF_TAG_OFFSET_TIME_ORIGINAL = 0x9011,
106  EXIF_TAG_OFFSET_TIME_DIGITIZED = 0x9012,
107  EXIF_TAG_COMPONENTS_CONFIGURATION = 0x9101,
108  EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = 0x9102,
109  EXIF_TAG_SHUTTER_SPEED_VALUE = 0x9201,
110  EXIF_TAG_APERTURE_VALUE = 0x9202,
111  EXIF_TAG_BRIGHTNESS_VALUE = 0x9203,
112  EXIF_TAG_EXPOSURE_BIAS_VALUE = 0x9204,
113  EXIF_TAG_MAX_APERTURE_VALUE = 0x9205,
114  EXIF_TAG_SUBJECT_DISTANCE = 0x9206,
115  EXIF_TAG_METERING_MODE = 0x9207,
116  EXIF_TAG_LIGHT_SOURCE = 0x9208,
117  EXIF_TAG_FLASH = 0x9209,
118  EXIF_TAG_FOCAL_LENGTH = 0x920a,
119  EXIF_TAG_SUBJECT_AREA = 0x9214,
120  EXIF_TAG_TIFF_EP_STANDARD_ID = 0x9216,
121  EXIF_TAG_MAKER_NOTE = 0x927c,
122  EXIF_TAG_USER_COMMENT = 0x9286,
123  EXIF_TAG_SUB_SEC_TIME = 0x9290,
124  EXIF_TAG_SUB_SEC_TIME_ORIGINAL = 0x9291,
125  EXIF_TAG_SUB_SEC_TIME_DIGITIZED = 0x9292,
126  EXIF_TAG_XP_TITLE = 0x9c9b,
127  EXIF_TAG_XP_COMMENT = 0x9c9c,
128  EXIF_TAG_XP_AUTHOR = 0x9c9d,
129  EXIF_TAG_XP_KEYWORDS = 0x9c9e,
130  EXIF_TAG_XP_SUBJECT = 0x9c9f,
131  EXIF_TAG_FLASH_PIX_VERSION = 0xa000,
132  EXIF_TAG_COLOR_SPACE = 0xa001,
133  EXIF_TAG_PIXEL_X_DIMENSION = 0xa002,
134  EXIF_TAG_PIXEL_Y_DIMENSION = 0xa003,
135  EXIF_TAG_RELATED_SOUND_FILE = 0xa004,
136  EXIF_TAG_INTEROPERABILITY_IFD_POINTER = 0xa005,
137  EXIF_TAG_FLASH_ENERGY = 0xa20b,
138  EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE = 0xa20c,
139  EXIF_TAG_FOCAL_PLANE_X_RESOLUTION = 0xa20e,
140  EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION = 0xa20f,
141  EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT = 0xa210,
142  EXIF_TAG_SUBJECT_LOCATION = 0xa214,
143  EXIF_TAG_EXPOSURE_INDEX = 0xa215,
144  EXIF_TAG_SENSING_METHOD = 0xa217,
145  EXIF_TAG_FILE_SOURCE = 0xa300,
146  EXIF_TAG_SCENE_TYPE = 0xa301,
147  EXIF_TAG_NEW_CFA_PATTERN = 0xa302,
148  EXIF_TAG_CUSTOM_RENDERED = 0xa401,
149  EXIF_TAG_EXPOSURE_MODE = 0xa402,
150  EXIF_TAG_WHITE_BALANCE = 0xa403,
151  EXIF_TAG_DIGITAL_ZOOM_RATIO = 0xa404,
152  EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405,
153  EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406,
154  EXIF_TAG_GAIN_CONTROL = 0xa407,
155  EXIF_TAG_CONTRAST = 0xa408,
156  EXIF_TAG_SATURATION = 0xa409,
157  EXIF_TAG_SHARPNESS = 0xa40a,
158  EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b,
159  EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c,
160  EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420,
161  EXIF_TAG_CAMERA_OWNER_NAME = 0xa430,
162  EXIF_TAG_BODY_SERIAL_NUMBER = 0xa431,
163  EXIF_TAG_LENS_SPECIFICATION = 0xa432,
164  EXIF_TAG_LENS_MAKE = 0xa433,
165  EXIF_TAG_LENS_MODEL = 0xa434,
166  EXIF_TAG_LENS_SERIAL_NUMBER = 0xa435,
167  EXIF_TAG_COMPOSITE_IMAGE = 0xa460,
168  EXIF_TAG_SOURCE_IMAGE_NUMBER_OF_COMPOSITE_IMAGE = 0xa461,
169  EXIF_TAG_SOURCE_EXPOSURE_TIMES_OF_COMPOSITE_IMAGE = 0xa462,
170  EXIF_TAG_GAMMA = 0xa500,
171  EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5,
172  EXIF_TAG_PADDING = 0xea1c
173 } ExifTag;
174 
175 /* GPS tags overlap with above ones. */
176 #define EXIF_TAG_GPS_VERSION_ID 0x0000
177 #define EXIF_TAG_GPS_LATITUDE_REF 0x0001 /* INTEROPERABILITY_INDEX */
178 #define EXIF_TAG_GPS_LATITUDE 0x0002 /* INTEROPERABILITY_VERSION */
179 #define EXIF_TAG_GPS_LONGITUDE_REF 0x0003
180 #define EXIF_TAG_GPS_LONGITUDE 0x0004
181 #define EXIF_TAG_GPS_ALTITUDE_REF 0x0005
182 #define EXIF_TAG_GPS_ALTITUDE 0x0006
183 #define EXIF_TAG_GPS_TIME_STAMP 0x0007
184 #define EXIF_TAG_GPS_SATELLITES 0x0008
185 #define EXIF_TAG_GPS_STATUS 0x0009
186 #define EXIF_TAG_GPS_MEASURE_MODE 0x000a
187 #define EXIF_TAG_GPS_DOP 0x000b
188 #define EXIF_TAG_GPS_SPEED_REF 0x000c
189 #define EXIF_TAG_GPS_SPEED 0x000d
190 #define EXIF_TAG_GPS_TRACK_REF 0x000e
191 #define EXIF_TAG_GPS_TRACK 0x000f
192 #define EXIF_TAG_GPS_IMG_DIRECTION_REF 0x0010
193 #define EXIF_TAG_GPS_IMG_DIRECTION 0x0011
194 #define EXIF_TAG_GPS_MAP_DATUM 0x0012
195 #define EXIF_TAG_GPS_DEST_LATITUDE_REF 0x0013
196 #define EXIF_TAG_GPS_DEST_LATITUDE 0x0014
197 #define EXIF_TAG_GPS_DEST_LONGITUDE_REF 0x0015
198 #define EXIF_TAG_GPS_DEST_LONGITUDE 0x0016
199 #define EXIF_TAG_GPS_DEST_BEARING_REF 0x0017
200 #define EXIF_TAG_GPS_DEST_BEARING 0x0018
201 #define EXIF_TAG_GPS_DEST_DISTANCE_REF 0x0019
202 #define EXIF_TAG_GPS_DEST_DISTANCE 0x001a
203 #define EXIF_TAG_GPS_PROCESSING_METHOD 0x001b
204 #define EXIF_TAG_GPS_AREA_INFORMATION 0x001c
205 #define EXIF_TAG_GPS_DATE_STAMP 0x001d
206 #define EXIF_TAG_GPS_DIFFERENTIAL 0x001e
207 #define EXIF_TAG_GPS_H_POSITIONING_ERROR 0x001f
208 
210 typedef enum {
213 
216 
219 
223 
231 ExifTag exif_tag_from_name (const char *name);
232 
241 const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd);
242 
250 const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd);
251 
259 const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd);
260 
274  ExifDataType t);
275 
276 /* Don't use these functions. They are here for compatibility only. */
277 
279 const char *exif_tag_get_name (ExifTag tag);
280 
282 const char *exif_tag_get_title (ExifTag tag);
283 
285 const char *exif_tag_get_description (ExifTag tag);
286 
287 
288 /* For now, do not use these functions. */
289 
291 ExifTag exif_tag_table_get_tag (unsigned int n);
292 
294 const char *exif_tag_table_get_name (unsigned int n);
295 
297 unsigned int exif_tag_table_count (void);
298 
299 
300 /* Don't use these definitions. They are here for compatibility only. */
301 
303 #define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING
304 
305 #ifdef __cplusplus
306 }
307 #endif /* __cplusplus */
308 
309 #endif /* !defined(LIBEXIF_EXIF_TAG_H) */
This tag is not allowed in the given IFD.
Definition: exif-tag.h:215
ExifTag
EXIF tags.
Definition: exif-tag.h:36
This tag is mandatory in the given IFD.
Definition: exif-tag.h:218
const char * exif_tag_get_description(ExifTag tag)
Definition: exif-tag.c:1161
ExifSupportLevel
What level of support a tag enjoys in the EXIF standard.
Definition: exif-tag.h:210
ExifTag exif_tag_from_name(const char *name)
Return the tag ID given its unique textual name.
Definition: exif-tag.c:1169
const char * exif_tag_get_name(ExifTag tag)
Definition: exif-tag.c:1149
const char * exif_tag_get_title(ExifTag tag)
Definition: exif-tag.c:1155
const char * exif_tag_get_title_in_ifd(ExifTag tag, ExifIfd ifd)
Return a textual title of the given tag when found in the given IFD.
Definition: exif-tag.c:1062
The meaning of this tag is unknown.
Definition: exif-tag.h:212
const char * exif_tag_get_name_in_ifd(ExifTag tag, ExifIfd ifd)
Return a textual name of the given tag when found in the given IFD.
Definition: exif-tag.c:1040
ExifSupportLevel exif_tag_get_support_level_in_ifd(ExifTag tag, ExifIfd ifd, ExifDataType t)
Return whether the given tag is mandatory or not in the given IFD and data type according to the EXIF...
Definition: exif-tag.c:1258
const char * exif_tag_get_description_in_ifd(ExifTag tag, ExifIfd ifd)
Return a verbose textual description of the given tag when found in the given IFD.
Definition: exif-tag.c:1085
This tag is optional in the given IFD.
Definition: exif-tag.h:221
unsigned int exif_tag_table_count(void)
Return the number of entries in the EXIF tag table, including the terminating NULL entry...
Definition: exif-tag.c:975