EXIF library (libexif) API: libexif/exif-tag.h Source File

- Main Page
- Files
- Directories
- Related Pages

- File List
- Globals

# exif-tag.h

    00001 /* exif-tag.h
    00002  *
    00003  * Copyright © 2001 Lutz Müller <lutz@users.sourceforge.net>
    00004  *
    00005  * This library is free software; you can redistribute it and/or
    00006  * modify it under the terms of the GNU Lesser General Public
    00007  * License as published by the Free Software Foundation; either
    00008  * version 2 of the License, or (at your option) any later version.
    00009  *
    00010  * This library is distributed in the hope that it will be useful,
    00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013  * Lesser General Public License for more details.
    00014  *
    00015  * You should have received a copy of the GNU Lesser General Public
    00016  * License along with this library; if not, write to the
    00017  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018  * Boston, MA 02111-1307, USA.
    00019  */
    00020
    00021 #ifndef __EXIF_TAG_H__
    00022 #define __EXIF_TAG_H__
    00023
    00024 #ifdef __cplusplus
    00025 extern "C" {
    00026 #endif /* __cplusplus */
    00027
    00028 #include <libexif/exif-ifd.h>
    00029 #include <libexif/exif-data-type.h>
    00030
    00031 typedef enum {
    00032         EXIF_TAG_INTEROPERABILITY_INDEX         = 0x0001,
    00033         EXIF_TAG_INTEROPERABILITY_VERSION       = 0x0002,
    00034         EXIF_TAG_NEW_SUBFILE_TYPE               = 0x00fe,
    00035         EXIF_TAG_IMAGE_WIDTH                    = 0x0100,
    00036         EXIF_TAG_IMAGE_LENGTH                   = 0x0101,
    00037         EXIF_TAG_BITS_PER_SAMPLE                = 0x0102,
    00038         EXIF_TAG_COMPRESSION                    = 0x0103,
    00039         EXIF_TAG_PHOTOMETRIC_INTERPRETATION     = 0x0106,
    00040         EXIF_TAG_FILL_ORDER                     = 0x010a,
    00041         EXIF_TAG_DOCUMENT_NAME                  = 0x010d,
    00042         EXIF_TAG_IMAGE_DESCRIPTION              = 0x010e,
    00043         EXIF_TAG_MAKE                           = 0x010f,
    00044         EXIF_TAG_MODEL                          = 0x0110,
    00045         EXIF_TAG_STRIP_OFFSETS                  = 0x0111,
    00046         EXIF_TAG_ORIENTATION                    = 0x0112,
    00047         EXIF_TAG_SAMPLES_PER_PIXEL              = 0x0115,
    00048         EXIF_TAG_ROWS_PER_STRIP                 = 0x0116,
    00049         EXIF_TAG_STRIP_BYTE_COUNTS              = 0x0117,
    00050         EXIF_TAG_X_RESOLUTION                   = 0x011a,
    00051         EXIF_TAG_Y_RESOLUTION                   = 0x011b,
    00052         EXIF_TAG_PLANAR_CONFIGURATION           = 0x011c,
    00053         EXIF_TAG_RESOLUTION_UNIT                = 0x0128,
    00054         EXIF_TAG_TRANSFER_FUNCTION              = 0x012d,
    00055         EXIF_TAG_SOFTWARE                       = 0x0131,
    00056         EXIF_TAG_DATE_TIME                      = 0x0132,
    00057         EXIF_TAG_ARTIST                         = 0x013b,
    00058         EXIF_TAG_WHITE_POINT                    = 0x013e,
    00059         EXIF_TAG_PRIMARY_CHROMATICITIES         = 0x013f,
    00060         EXIF_TAG_TRANSFER_RANGE                 = 0x0156,
    00061         EXIF_TAG_SUB_IFDS                       = 0x014a,
    00062         EXIF_TAG_JPEG_PROC                      = 0x0200,
    00063         EXIF_TAG_JPEG_INTERCHANGE_FORMAT        = 0x0201,
    00064         EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202,
    00065         EXIF_TAG_YCBCR_COEFFICIENTS             = 0x0211,
    00066         EXIF_TAG_YCBCR_SUB_SAMPLING             = 0x0212,
    00067         EXIF_TAG_YCBCR_POSITIONING              = 0x0213,
    00068         EXIF_TAG_REFERENCE_BLACK_WHITE          = 0x0214,
    00069         EXIF_TAG_XML_PACKET                     = 0x02bc,
    00070         EXIF_TAG_RELATED_IMAGE_FILE_FORMAT      = 0x1000,
    00071         EXIF_TAG_RELATED_IMAGE_WIDTH            = 0x1001,
    00072         EXIF_TAG_RELATED_IMAGE_LENGTH           = 0x1002,
    00073         EXIF_TAG_CFA_REPEAT_PATTERN_DIM         = 0x828d,
    00074         EXIF_TAG_CFA_PATTERN                    = 0x828e,
    00075         EXIF_TAG_BATTERY_LEVEL                  = 0x828f,
    00076         EXIF_TAG_COPYRIGHT                      = 0x8298,
    00077         EXIF_TAG_EXPOSURE_TIME                  = 0x829a,
    00078         EXIF_TAG_FNUMBER                        = 0x829d,
    00079         EXIF_TAG_IPTC_NAA                       = 0x83bb,
    00080         EXIF_TAG_IMAGE_RESOURCES                = 0x8649,
    00081         EXIF_TAG_EXIF_IFD_POINTER               = 0x8769,
    00082         EXIF_TAG_INTER_COLOR_PROFILE            = 0x8773,
    00083         EXIF_TAG_EXPOSURE_PROGRAM               = 0x8822,
    00084         EXIF_TAG_SPECTRAL_SENSITIVITY           = 0x8824,
    00085         EXIF_TAG_GPS_INFO_IFD_POINTER           = 0x8825,
    00086         EXIF_TAG_ISO_SPEED_RATINGS              = 0x8827,
    00087         EXIF_TAG_OECF                           = 0x8828,
    00088         EXIF_TAG_EXIF_VERSION                   = 0x9000,
    00089         EXIF_TAG_DATE_TIME_ORIGINAL             = 0x9003,
    00090         EXIF_TAG_DATE_TIME_DIGITIZED            = 0x9004,
    00091         EXIF_TAG_COMPONENTS_CONFIGURATION       = 0x9101,
    00092         EXIF_TAG_COMPRESSED_BITS_PER_PIXEL      = 0x9102,
    00093         EXIF_TAG_SHUTTER_SPEED_VALUE            = 0x9201,
    00094         EXIF_TAG_APERTURE_VALUE                 = 0x9202,
    00095         EXIF_TAG_BRIGHTNESS_VALUE               = 0x9203,
    00096         EXIF_TAG_EXPOSURE_BIAS_VALUE            = 0x9204,
    00097         EXIF_TAG_MAX_APERTURE_VALUE             = 0x9205,
    00098         EXIF_TAG_SUBJECT_DISTANCE               = 0x9206,
    00099         EXIF_TAG_METERING_MODE                  = 0x9207,
    00100         EXIF_TAG_LIGHT_SOURCE                   = 0x9208,
    00101         EXIF_TAG_FLASH                          = 0x9209,
    00102         EXIF_TAG_FOCAL_LENGTH                   = 0x920a,
    00103         EXIF_TAG_SUBJECT_AREA                   = 0x9214,
    00104         EXIF_TAG_TIFF_EP_STANDARD_ID            = 0x9216,
    00105         EXIF_TAG_MAKER_NOTE                     = 0x927c,
    00106         EXIF_TAG_USER_COMMENT                   = 0x9286,
    00107         EXIF_TAG_SUB_SEC_TIME                   = 0x9290,
    00108         EXIF_TAG_SUB_SEC_TIME_ORIGINAL          = 0x9291,
    00109         EXIF_TAG_SUB_SEC_TIME_DIGITIZED         = 0x9292,
    00110         EXIF_TAG_XP_TITLE                       = 0x9c9b,
    00111         EXIF_TAG_XP_COMMENT                     = 0x9c9c,
    00112         EXIF_TAG_XP_AUTHOR                      = 0x9c9d,
    00113         EXIF_TAG_XP_KEYWORDS                    = 0x9c9e,
    00114         EXIF_TAG_XP_SUBJECT                     = 0x9c9f,
    00115         EXIF_TAG_FLASH_PIX_VERSION              = 0xa000,
    00116         EXIF_TAG_COLOR_SPACE                    = 0xa001,
    00117         EXIF_TAG_PIXEL_X_DIMENSION              = 0xa002,
    00118         EXIF_TAG_PIXEL_Y_DIMENSION              = 0xa003,
    00119         EXIF_TAG_RELATED_SOUND_FILE             = 0xa004,
    00120         EXIF_TAG_INTEROPERABILITY_IFD_POINTER   = 0xa005,
    00121         EXIF_TAG_FLASH_ENERGY                   = 0xa20b,
    00122         EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE     = 0xa20c,
    00123         EXIF_TAG_FOCAL_PLANE_X_RESOLUTION       = 0xa20e,
    00124         EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION       = 0xa20f,
    00125         EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT    = 0xa210,
    00126         EXIF_TAG_SUBJECT_LOCATION               = 0xa214,
    00127         EXIF_TAG_EXPOSURE_INDEX                 = 0xa215,
    00128         EXIF_TAG_SENSING_METHOD                 = 0xa217,
    00129         EXIF_TAG_FILE_SOURCE                    = 0xa300,
    00130         EXIF_TAG_SCENE_TYPE                     = 0xa301,
    00131         EXIF_TAG_NEW_CFA_PATTERN                = 0xa302,
    00132         EXIF_TAG_CUSTOM_RENDERED                = 0xa401,
    00133         EXIF_TAG_EXPOSURE_MODE                  = 0xa402,
    00134         EXIF_TAG_WHITE_BALANCE                  = 0xa403,
    00135         EXIF_TAG_DIGITAL_ZOOM_RATIO             = 0xa404,
    00136         EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM      = 0xa405,
    00137         EXIF_TAG_SCENE_CAPTURE_TYPE             = 0xa406,
    00138         EXIF_TAG_GAIN_CONTROL                   = 0xa407,
    00139         EXIF_TAG_CONTRAST                       = 0xa408,
    00140         EXIF_TAG_SATURATION                     = 0xa409,
    00141         EXIF_TAG_SHARPNESS                      = 0xa40a,
    00142         EXIF_TAG_DEVICE_SETTING_DESCRIPTION     = 0xa40b,
    00143         EXIF_TAG_SUBJECT_DISTANCE_RANGE         = 0xa40c,
    00144         EXIF_TAG_IMAGE_UNIQUE_ID                = 0xa420,
    00145         EXIF_TAG_GAMMA = 0xa500,
    00146         EXIF_TAG_UNKNOWN_C4A5 = 0xc4a5
    00147 } ExifTag;
    00148
    00149 /* GPS tags overlap with above ones. */
    00150 #define EXIF_TAG_GPS_VERSION_ID        0x0000
    00151 #define EXIF_TAG_GPS_LATITUDE_REF      0x0001 /* INTEROPERABILITY_INDEX   */
    00152 #define EXIF_TAG_GPS_LATITUDE          0x0002 /* INTEROPERABILITY_VERSION */
    00153 #define EXIF_TAG_GPS_LONGITUDE_REF     0x0003
    00154 #define EXIF_TAG_GPS_LONGITUDE         0x0004
    00155 #define EXIF_TAG_GPS_ALTITUDE_REF      0x0005
    00156 #define EXIF_TAG_GPS_ALTITUDE          0x0006
    00157 #define EXIF_TAG_GPS_TIME_STAMP        0x0007
    00158 #define EXIF_TAG_GPS_SATELLITES        0x0008
    00159 #define EXIF_TAG_GPS_STATUS            0x0009
    00160 #define EXIF_TAG_GPS_MEASURE_MODE      0x000a
    00161 #define EXIF_TAG_GPS_DOP               0x000b
    00162 #define EXIF_TAG_GPS_SPEED_REF         0x000c
    00163 #define EXIF_TAG_GPS_SPEED             0x000d
    00164 #define EXIF_TAG_GPS_TRACK_REF         0x000e
    00165 #define EXIF_TAG_GPS_TRACK             0x000f
    00166 #define EXIF_TAG_GPS_IMG_DIRECTION_REF 0x0010
    00167 #define EXIF_TAG_GPS_IMG_DIRECTION     0x0011
    00168 #define EXIF_TAG_GPS_MAP_DATUM         0x0012
    00169 #define EXIF_TAG_GPS_DEST_LATITUDE_REF 0x0013
    00170 #define EXIF_TAG_GPS_DEST_LATITUDE     0x0014
    00171 #define EXIF_TAG_GPS_DEST_LONGITUDE_REF 0x0015
    00172 #define EXIF_TAG_GPS_DEST_LONGITUDE     0x0016
    00173 #define EXIF_TAG_GPS_DEST_BEARING_REF   0x0017
    00174 #define EXIF_TAG_GPS_DEST_BEARING       0x0018
    00175 #define EXIF_TAG_GPS_DEST_DISTANCE_REF  0x0019
    00176 #define EXIF_TAG_GPS_DEST_DISTANCE      0x001a
    00177 #define EXIF_TAG_GPS_PROCESSING_METHOD  0x001b
    00178 #define EXIF_TAG_GPS_AREA_INFORMATION   0x001c
    00179 #define EXIF_TAG_GPS_DATE_STAMP         0x001d
    00180 #define EXIF_TAG_GPS_DIFFERENTIAL       0x001e
    00181
    00182 typedef enum {
    00183         EXIF_SUPPORT_LEVEL_UNKNOWN = 0,
    00184         EXIF_SUPPORT_LEVEL_NOT_RECORDED,
    00185         EXIF_SUPPORT_LEVEL_MANDATORY,
    00186         EXIF_SUPPORT_LEVEL_OPTIONAL
    00187 } ExifSupportLevel;
    00188
    00189 ExifTag          exif_tag_from_name                (const char *);
    00190 const char      *exif_tag_get_name_in_ifd          (ExifTag, ExifIfd);
    00191 const char      *exif_tag_get_title_in_ifd         (ExifTag, ExifIfd);
    00192 const char      *exif_tag_get_description_in_ifd   (ExifTag, ExifIfd);
    00193 ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag, ExifIfd,
    00194                                                     ExifDataType);
    00195
    00196 /* Don't use these functions. They are here for compatibility only. */
    00197 const char     *exif_tag_get_name        (ExifTag tag);
    00198 const char     *exif_tag_get_title       (ExifTag tag);
    00199 const char     *exif_tag_get_description (ExifTag tag);
    00200
    00201 #ifdef __cplusplus
    00202 }
    00203 #endif /* __cplusplus */
    00204
    00205 #endif /* __EXIF_TAG_H__ */