00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __EXIF_TAG_H__
00024 #define __EXIF_TAG_H__
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00030 #include <libexif/exif-ifd.h>
00031 #include <libexif/exif-data-type.h>
00032
00034 typedef enum {
00035 EXIF_TAG_INTEROPERABILITY_INDEX = 0x0001,
00036 EXIF_TAG_INTEROPERABILITY_VERSION = 0x0002,
00037 EXIF_TAG_NEW_SUBFILE_TYPE = 0x00fe,
00038 EXIF_TAG_IMAGE_WIDTH = 0x0100,
00039 EXIF_TAG_IMAGE_LENGTH = 0x0101,
00040 EXIF_TAG_BITS_PER_SAMPLE = 0x0102,
00041 EXIF_TAG_COMPRESSION = 0x0103,
00042 EXIF_TAG_PHOTOMETRIC_INTERPRETATION = 0x0106,
00043 EXIF_TAG_FILL_ORDER = 0x010a,
00044 EXIF_TAG_DOCUMENT_NAME = 0x010d,
00045 EXIF_TAG_IMAGE_DESCRIPTION = 0x010e,
00046 EXIF_TAG_MAKE = 0x010f,
00047 EXIF_TAG_MODEL = 0x0110,
00048 EXIF_TAG_STRIP_OFFSETS = 0x0111,
00049 EXIF_TAG_ORIENTATION = 0x0112,
00050 EXIF_TAG_SAMPLES_PER_PIXEL = 0x0115,
00051 EXIF_TAG_ROWS_PER_STRIP = 0x0116,
00052 EXIF_TAG_STRIP_BYTE_COUNTS = 0x0117,
00053 EXIF_TAG_X_RESOLUTION = 0x011a,
00054 EXIF_TAG_Y_RESOLUTION = 0x011b,
00055 EXIF_TAG_PLANAR_CONFIGURATION = 0x011c,
00056 EXIF_TAG_RESOLUTION_UNIT = 0x0128,
00057 EXIF_TAG_TRANSFER_FUNCTION = 0x012d,
00058 EXIF_TAG_SOFTWARE = 0x0131,
00059 EXIF_TAG_DATE_TIME = 0x0132,
00060 EXIF_TAG_ARTIST = 0x013b,
00061 EXIF_TAG_WHITE_POINT = 0x013e,
00062 EXIF_TAG_PRIMARY_CHROMATICITIES = 0x013f,
00063 EXIF_TAG_SUB_IFDS = 0x014a,
00064 EXIF_TAG_TRANSFER_RANGE = 0x0156,
00065 EXIF_TAG_JPEG_PROC = 0x0200,
00066 EXIF_TAG_JPEG_INTERCHANGE_FORMAT = 0x0201,
00067 EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202,
00068 EXIF_TAG_YCBCR_COEFFICIENTS = 0x0211,
00069 EXIF_TAG_YCBCR_SUB_SAMPLING = 0x0212,
00070 EXIF_TAG_YCBCR_POSITIONING = 0x0213,
00071 EXIF_TAG_REFERENCE_BLACK_WHITE = 0x0214,
00072 EXIF_TAG_XML_PACKET = 0x02bc,
00073 EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = 0x1000,
00074 EXIF_TAG_RELATED_IMAGE_WIDTH = 0x1001,
00075 EXIF_TAG_RELATED_IMAGE_LENGTH = 0x1002,
00076 EXIF_TAG_CFA_REPEAT_PATTERN_DIM = 0x828d,
00077 EXIF_TAG_CFA_PATTERN = 0x828e,
00078 EXIF_TAG_BATTERY_LEVEL = 0x828f,
00079 EXIF_TAG_COPYRIGHT = 0x8298,
00080 EXIF_TAG_EXPOSURE_TIME = 0x829a,
00081 EXIF_TAG_FNUMBER = 0x829d,
00082 EXIF_TAG_IPTC_NAA = 0x83bb,
00083 EXIF_TAG_IMAGE_RESOURCES = 0x8649,
00084 EXIF_TAG_EXIF_IFD_POINTER = 0x8769,
00085 EXIF_TAG_INTER_COLOR_PROFILE = 0x8773,
00086 EXIF_TAG_EXPOSURE_PROGRAM = 0x8822,
00087 EXIF_TAG_SPECTRAL_SENSITIVITY = 0x8824,
00088 EXIF_TAG_GPS_INFO_IFD_POINTER = 0x8825,
00089 EXIF_TAG_ISO_SPEED_RATINGS = 0x8827,
00090 EXIF_TAG_OECF = 0x8828,
00091 EXIF_TAG_TIME_ZONE_OFFSET = 0x882a,
00092 EXIF_TAG_EXIF_VERSION = 0x9000,
00093 EXIF_TAG_DATE_TIME_ORIGINAL = 0x9003,
00094 EXIF_TAG_DATE_TIME_DIGITIZED = 0x9004,
00095 EXIF_TAG_COMPONENTS_CONFIGURATION = 0x9101,
00096 EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = 0x9102,
00097 EXIF_TAG_SHUTTER_SPEED_VALUE = 0x9201,
00098 EXIF_TAG_APERTURE_VALUE = 0x9202,
00099 EXIF_TAG_BRIGHTNESS_VALUE = 0x9203,
00100 EXIF_TAG_EXPOSURE_BIAS_VALUE = 0x9204,
00101 EXIF_TAG_MAX_APERTURE_VALUE = 0x9205,
00102 EXIF_TAG_SUBJECT_DISTANCE = 0x9206,
00103 EXIF_TAG_METERING_MODE = 0x9207,
00104 EXIF_TAG_LIGHT_SOURCE = 0x9208,
00105 EXIF_TAG_FLASH = 0x9209,
00106 EXIF_TAG_FOCAL_LENGTH = 0x920a,
00107 EXIF_TAG_SUBJECT_AREA = 0x9214,
00108 EXIF_TAG_TIFF_EP_STANDARD_ID = 0x9216,
00109 EXIF_TAG_MAKER_NOTE = 0x927c,
00110 EXIF_TAG_USER_COMMENT = 0x9286,
00111 EXIF_TAG_SUB_SEC_TIME = 0x9290,
00112 EXIF_TAG_SUB_SEC_TIME_ORIGINAL = 0x9291,
00113 EXIF_TAG_SUB_SEC_TIME_DIGITIZED = 0x9292,
00114 EXIF_TAG_XP_TITLE = 0x9c9b,
00115 EXIF_TAG_XP_COMMENT = 0x9c9c,
00116 EXIF_TAG_XP_AUTHOR = 0x9c9d,
00117 EXIF_TAG_XP_KEYWORDS = 0x9c9e,
00118 EXIF_TAG_XP_SUBJECT = 0x9c9f,
00119 EXIF_TAG_FLASH_PIX_VERSION = 0xa000,
00120 EXIF_TAG_COLOR_SPACE = 0xa001,
00121 EXIF_TAG_PIXEL_X_DIMENSION = 0xa002,
00122 EXIF_TAG_PIXEL_Y_DIMENSION = 0xa003,
00123 EXIF_TAG_RELATED_SOUND_FILE = 0xa004,
00124 EXIF_TAG_INTEROPERABILITY_IFD_POINTER = 0xa005,
00125 EXIF_TAG_FLASH_ENERGY = 0xa20b,
00126 EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE = 0xa20c,
00127 EXIF_TAG_FOCAL_PLANE_X_RESOLUTION = 0xa20e,
00128 EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION = 0xa20f,
00129 EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT = 0xa210,
00130 EXIF_TAG_SUBJECT_LOCATION = 0xa214,
00131 EXIF_TAG_EXPOSURE_INDEX = 0xa215,
00132 EXIF_TAG_SENSING_METHOD = 0xa217,
00133 EXIF_TAG_FILE_SOURCE = 0xa300,
00134 EXIF_TAG_SCENE_TYPE = 0xa301,
00135 EXIF_TAG_NEW_CFA_PATTERN = 0xa302,
00136 EXIF_TAG_CUSTOM_RENDERED = 0xa401,
00137 EXIF_TAG_EXPOSURE_MODE = 0xa402,
00138 EXIF_TAG_WHITE_BALANCE = 0xa403,
00139 EXIF_TAG_DIGITAL_ZOOM_RATIO = 0xa404,
00140 EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405,
00141 EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406,
00142 EXIF_TAG_GAIN_CONTROL = 0xa407,
00143 EXIF_TAG_CONTRAST = 0xa408,
00144 EXIF_TAG_SATURATION = 0xa409,
00145 EXIF_TAG_SHARPNESS = 0xa40a,
00146 EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b,
00147 EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c,
00148 EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420,
00149 EXIF_TAG_GAMMA = 0xa500,
00150 EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5,
00151 EXIF_TAG_PADDING = 0xea1c
00152 } ExifTag;
00153
00154
00155 #define EXIF_TAG_GPS_VERSION_ID 0x0000
00156 #define EXIF_TAG_GPS_LATITUDE_REF 0x0001
00157 #define EXIF_TAG_GPS_LATITUDE 0x0002
00158 #define EXIF_TAG_GPS_LONGITUDE_REF 0x0003
00159 #define EXIF_TAG_GPS_LONGITUDE 0x0004
00160 #define EXIF_TAG_GPS_ALTITUDE_REF 0x0005
00161 #define EXIF_TAG_GPS_ALTITUDE 0x0006
00162 #define EXIF_TAG_GPS_TIME_STAMP 0x0007
00163 #define EXIF_TAG_GPS_SATELLITES 0x0008
00164 #define EXIF_TAG_GPS_STATUS 0x0009
00165 #define EXIF_TAG_GPS_MEASURE_MODE 0x000a
00166 #define EXIF_TAG_GPS_DOP 0x000b
00167 #define EXIF_TAG_GPS_SPEED_REF 0x000c
00168 #define EXIF_TAG_GPS_SPEED 0x000d
00169 #define EXIF_TAG_GPS_TRACK_REF 0x000e
00170 #define EXIF_TAG_GPS_TRACK 0x000f
00171 #define EXIF_TAG_GPS_IMG_DIRECTION_REF 0x0010
00172 #define EXIF_TAG_GPS_IMG_DIRECTION 0x0011
00173 #define EXIF_TAG_GPS_MAP_DATUM 0x0012
00174 #define EXIF_TAG_GPS_DEST_LATITUDE_REF 0x0013
00175 #define EXIF_TAG_GPS_DEST_LATITUDE 0x0014
00176 #define EXIF_TAG_GPS_DEST_LONGITUDE_REF 0x0015
00177 #define EXIF_TAG_GPS_DEST_LONGITUDE 0x0016
00178 #define EXIF_TAG_GPS_DEST_BEARING_REF 0x0017
00179 #define EXIF_TAG_GPS_DEST_BEARING 0x0018
00180 #define EXIF_TAG_GPS_DEST_DISTANCE_REF 0x0019
00181 #define EXIF_TAG_GPS_DEST_DISTANCE 0x001a
00182 #define EXIF_TAG_GPS_PROCESSING_METHOD 0x001b
00183 #define EXIF_TAG_GPS_AREA_INFORMATION 0x001c
00184 #define EXIF_TAG_GPS_DATE_STAMP 0x001d
00185 #define EXIF_TAG_GPS_DIFFERENTIAL 0x001e
00186
00188 typedef enum {
00190 EXIF_SUPPORT_LEVEL_UNKNOWN = 0,
00191
00193 EXIF_SUPPORT_LEVEL_NOT_RECORDED,
00194
00196 EXIF_SUPPORT_LEVEL_MANDATORY,
00197
00199 EXIF_SUPPORT_LEVEL_OPTIONAL
00200 } ExifSupportLevel;
00201
00209 ExifTag exif_tag_from_name (const char *name);
00210
00219 const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd);
00220
00228 const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd);
00229
00237 const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd);
00238
00251 ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag tag, ExifIfd ifd,
00252 ExifDataType t);
00253
00254
00255
00257 const char *exif_tag_get_name (ExifTag tag);
00258
00260 const char *exif_tag_get_title (ExifTag tag);
00261
00263 const char *exif_tag_get_description (ExifTag tag);
00264
00265
00266
00267
00269 ExifTag exif_tag_table_get_tag (unsigned int n);
00270
00272 const char *exif_tag_table_get_name (unsigned int n);
00273
00275 unsigned int exif_tag_table_count (void);
00276
00277
00278
00279
00281 #define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING
00282
00283 #ifdef __cplusplus
00284 }
00285 #endif
00286
00287 #endif