EXIF library (libexif) API 0.6.24
exif-tag.h File Reference

Handling EXIF tags. More...

#include <libexif/exif-ifd.h>
#include <libexif/exif-data-type.h>

Go to the source code of this file.

Macros

#define EXIF_TAG_GPS_VERSION_ID   0x0000
 
#define EXIF_TAG_GPS_LATITUDE_REF   0x0001 /* INTEROPERABILITY_INDEX */
 
#define EXIF_TAG_GPS_LATITUDE   0x0002 /* INTEROPERABILITY_VERSION */
 
#define EXIF_TAG_GPS_LONGITUDE_REF   0x0003
 
#define EXIF_TAG_GPS_LONGITUDE   0x0004
 
#define EXIF_TAG_GPS_ALTITUDE_REF   0x0005
 
#define EXIF_TAG_GPS_ALTITUDE   0x0006
 
#define EXIF_TAG_GPS_TIME_STAMP   0x0007
 
#define EXIF_TAG_GPS_SATELLITES   0x0008
 
#define EXIF_TAG_GPS_STATUS   0x0009
 
#define EXIF_TAG_GPS_MEASURE_MODE   0x000a
 
#define EXIF_TAG_GPS_DOP   0x000b
 
#define EXIF_TAG_GPS_SPEED_REF   0x000c
 
#define EXIF_TAG_GPS_SPEED   0x000d
 
#define EXIF_TAG_GPS_TRACK_REF   0x000e
 
#define EXIF_TAG_GPS_TRACK   0x000f
 
#define EXIF_TAG_GPS_IMG_DIRECTION_REF   0x0010
 
#define EXIF_TAG_GPS_IMG_DIRECTION   0x0011
 
#define EXIF_TAG_GPS_MAP_DATUM   0x0012
 
#define EXIF_TAG_GPS_DEST_LATITUDE_REF   0x0013
 
#define EXIF_TAG_GPS_DEST_LATITUDE   0x0014
 
#define EXIF_TAG_GPS_DEST_LONGITUDE_REF   0x0015
 
#define EXIF_TAG_GPS_DEST_LONGITUDE   0x0016
 
#define EXIF_TAG_GPS_DEST_BEARING_REF   0x0017
 
#define EXIF_TAG_GPS_DEST_BEARING   0x0018
 
#define EXIF_TAG_GPS_DEST_DISTANCE_REF   0x0019
 
#define EXIF_TAG_GPS_DEST_DISTANCE   0x001a
 
#define EXIF_TAG_GPS_PROCESSING_METHOD   0x001b
 
#define EXIF_TAG_GPS_AREA_INFORMATION   0x001c
 
#define EXIF_TAG_GPS_DATE_STAMP   0x001d
 
#define EXIF_TAG_GPS_DIFFERENTIAL   0x001e
 
#define EXIF_TAG_GPS_H_POSITIONING_ERROR   0x001f
 
#define EXIF_TAG_UNKNOWN_C4A5   EXIF_TAG_PRINT_IMAGE_MATCHING
 

Enumerations

enum  ExifTag {
  EXIF_TAG_INTEROPERABILITY_INDEX = 0x0001 , EXIF_TAG_INTEROPERABILITY_VERSION = 0x0002 , EXIF_TAG_NEW_SUBFILE_TYPE = 0x00fe , EXIF_TAG_IMAGE_WIDTH = 0x0100 ,
  EXIF_TAG_IMAGE_LENGTH = 0x0101 , EXIF_TAG_BITS_PER_SAMPLE = 0x0102 , EXIF_TAG_COMPRESSION = 0x0103 , EXIF_TAG_PHOTOMETRIC_INTERPRETATION = 0x0106 ,
  EXIF_TAG_FILL_ORDER = 0x010a , EXIF_TAG_DOCUMENT_NAME = 0x010d , EXIF_TAG_IMAGE_DESCRIPTION = 0x010e , EXIF_TAG_MAKE = 0x010f ,
  EXIF_TAG_MODEL = 0x0110 , EXIF_TAG_STRIP_OFFSETS = 0x0111 , EXIF_TAG_ORIENTATION = 0x0112 , EXIF_TAG_SAMPLES_PER_PIXEL = 0x0115 ,
  EXIF_TAG_ROWS_PER_STRIP = 0x0116 , EXIF_TAG_STRIP_BYTE_COUNTS = 0x0117 , EXIF_TAG_X_RESOLUTION = 0x011a , EXIF_TAG_Y_RESOLUTION = 0x011b ,
  EXIF_TAG_PLANAR_CONFIGURATION = 0x011c , EXIF_TAG_RESOLUTION_UNIT = 0x0128 , EXIF_TAG_TRANSFER_FUNCTION = 0x012d , EXIF_TAG_SOFTWARE = 0x0131 ,
  EXIF_TAG_DATE_TIME = 0x0132 , EXIF_TAG_ARTIST = 0x013b , EXIF_TAG_WHITE_POINT = 0x013e , EXIF_TAG_PRIMARY_CHROMATICITIES = 0x013f ,
  EXIF_TAG_SUB_IFDS = 0x014a , EXIF_TAG_TRANSFER_RANGE = 0x0156 , EXIF_TAG_JPEG_PROC = 0x0200 , EXIF_TAG_JPEG_INTERCHANGE_FORMAT = 0x0201 ,
  EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202 , EXIF_TAG_YCBCR_COEFFICIENTS = 0x0211 , EXIF_TAG_YCBCR_SUB_SAMPLING = 0x0212 , EXIF_TAG_YCBCR_POSITIONING = 0x0213 ,
  EXIF_TAG_REFERENCE_BLACK_WHITE = 0x0214 , EXIF_TAG_XML_PACKET = 0x02bc , EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = 0x1000 , EXIF_TAG_RELATED_IMAGE_WIDTH = 0x1001 ,
  EXIF_TAG_RELATED_IMAGE_LENGTH = 0x1002 , EXIF_TAG_IMAGE_DEPTH = 0x80e5 , EXIF_TAG_CFA_REPEAT_PATTERN_DIM = 0x828d , EXIF_TAG_CFA_PATTERN = 0x828e ,
  EXIF_TAG_BATTERY_LEVEL = 0x828f , EXIF_TAG_COPYRIGHT = 0x8298 , EXIF_TAG_EXPOSURE_TIME = 0x829a , EXIF_TAG_FNUMBER = 0x829d ,
  EXIF_TAG_IPTC_NAA = 0x83bb , EXIF_TAG_IMAGE_RESOURCES = 0x8649 , EXIF_TAG_EXIF_IFD_POINTER = 0x8769 , EXIF_TAG_INTER_COLOR_PROFILE = 0x8773 ,
  EXIF_TAG_EXPOSURE_PROGRAM = 0x8822 , EXIF_TAG_SPECTRAL_SENSITIVITY = 0x8824 , EXIF_TAG_GPS_INFO_IFD_POINTER = 0x8825 , EXIF_TAG_ISO_SPEED_RATINGS = 0x8827 ,
  EXIF_TAG_OECF = 0x8828 , EXIF_TAG_TIME_ZONE_OFFSET = 0x882a , EXIF_TAG_SENSITIVITY_TYPE = 0x8830 , EXIF_TAG_STANDARD_OUTPUT_SENSITIVITY = 0x8831 ,
  EXIF_TAG_RECOMMENDED_EXPOSURE_INDEX = 0x8832 , EXIF_TAG_ISO_SPEED = 0x8833 , EXIF_TAG_ISO_SPEEDLatitudeYYY = 0x8834 , EXIF_TAG_ISO_SPEEDLatitudeZZZ = 0x8835 ,
  EXIF_TAG_EXIF_VERSION = 0x9000 , EXIF_TAG_DATE_TIME_ORIGINAL = 0x9003 , EXIF_TAG_DATE_TIME_DIGITIZED = 0x9004 , EXIF_TAG_OFFSET_TIME = 0x9010 ,
  EXIF_TAG_OFFSET_TIME_ORIGINAL = 0x9011 , EXIF_TAG_OFFSET_TIME_DIGITIZED = 0x9012 , EXIF_TAG_COMPONENTS_CONFIGURATION = 0x9101 , EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = 0x9102 ,
  EXIF_TAG_SHUTTER_SPEED_VALUE = 0x9201 , EXIF_TAG_APERTURE_VALUE = 0x9202 , EXIF_TAG_BRIGHTNESS_VALUE = 0x9203 , EXIF_TAG_EXPOSURE_BIAS_VALUE = 0x9204 ,
  EXIF_TAG_MAX_APERTURE_VALUE = 0x9205 , EXIF_TAG_SUBJECT_DISTANCE = 0x9206 , EXIF_TAG_METERING_MODE = 0x9207 , EXIF_TAG_LIGHT_SOURCE = 0x9208 ,
  EXIF_TAG_FLASH = 0x9209 , EXIF_TAG_FOCAL_LENGTH = 0x920a , EXIF_TAG_SUBJECT_AREA = 0x9214 , EXIF_TAG_TIFF_EP_STANDARD_ID = 0x9216 ,
  EXIF_TAG_MAKER_NOTE = 0x927c , EXIF_TAG_USER_COMMENT = 0x9286 , EXIF_TAG_SUB_SEC_TIME = 0x9290 , EXIF_TAG_SUB_SEC_TIME_ORIGINAL = 0x9291 ,
  EXIF_TAG_SUB_SEC_TIME_DIGITIZED = 0x9292 , EXIF_TAG_XP_TITLE = 0x9c9b , EXIF_TAG_XP_COMMENT = 0x9c9c , EXIF_TAG_XP_AUTHOR = 0x9c9d ,
  EXIF_TAG_XP_KEYWORDS = 0x9c9e , EXIF_TAG_XP_SUBJECT = 0x9c9f , EXIF_TAG_FLASH_PIX_VERSION = 0xa000 , EXIF_TAG_COLOR_SPACE = 0xa001 ,
  EXIF_TAG_PIXEL_X_DIMENSION = 0xa002 , EXIF_TAG_PIXEL_Y_DIMENSION = 0xa003 , EXIF_TAG_RELATED_SOUND_FILE = 0xa004 , EXIF_TAG_INTEROPERABILITY_IFD_POINTER = 0xa005 ,
  EXIF_TAG_FLASH_ENERGY = 0xa20b , EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE = 0xa20c , EXIF_TAG_FOCAL_PLANE_X_RESOLUTION = 0xa20e , EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION = 0xa20f ,
  EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT = 0xa210 , EXIF_TAG_SUBJECT_LOCATION = 0xa214 , EXIF_TAG_EXPOSURE_INDEX = 0xa215 , EXIF_TAG_SENSING_METHOD = 0xa217 ,
  EXIF_TAG_FILE_SOURCE = 0xa300 , EXIF_TAG_SCENE_TYPE = 0xa301 , EXIF_TAG_NEW_CFA_PATTERN = 0xa302 , EXIF_TAG_CUSTOM_RENDERED = 0xa401 ,
  EXIF_TAG_EXPOSURE_MODE = 0xa402 , EXIF_TAG_WHITE_BALANCE = 0xa403 , EXIF_TAG_DIGITAL_ZOOM_RATIO = 0xa404 , EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405 ,
  EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406 , EXIF_TAG_GAIN_CONTROL = 0xa407 , EXIF_TAG_CONTRAST = 0xa408 , EXIF_TAG_SATURATION = 0xa409 ,
  EXIF_TAG_SHARPNESS = 0xa40a , EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b , EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c , EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420 ,
  EXIF_TAG_CAMERA_OWNER_NAME = 0xa430 , EXIF_TAG_BODY_SERIAL_NUMBER = 0xa431 , EXIF_TAG_LENS_SPECIFICATION = 0xa432 , EXIF_TAG_LENS_MAKE = 0xa433 ,
  EXIF_TAG_LENS_MODEL = 0xa434 , EXIF_TAG_LENS_SERIAL_NUMBER = 0xa435 , EXIF_TAG_COMPOSITE_IMAGE = 0xa460 , EXIF_TAG_SOURCE_IMAGE_NUMBER_OF_COMPOSITE_IMAGE = 0xa461 ,
  EXIF_TAG_SOURCE_EXPOSURE_TIMES_OF_COMPOSITE_IMAGE = 0xa462 , EXIF_TAG_GAMMA = 0xa500 , EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5 , EXIF_TAG_PADDING = 0xea1c
}
 EXIF tags.
 
enum  ExifSupportLevel { EXIF_SUPPORT_LEVEL_UNKNOWN = 0 , EXIF_SUPPORT_LEVEL_NOT_RECORDED , EXIF_SUPPORT_LEVEL_MANDATORY , EXIF_SUPPORT_LEVEL_OPTIONAL }
 What level of support a tag enjoys in the EXIF standard. More...
 

Functions

ExifTag exif_tag_from_name (const char *name)
 Return the tag ID given its unique textual name.
 
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.
 
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.
 
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.
 
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 specification.
 
const char * exif_tag_get_name (ExifTag tag)
 
const char * exif_tag_get_title (ExifTag tag)
 
const char * exif_tag_get_description (ExifTag tag)
 
ExifTag exif_tag_table_get_tag (unsigned int n)
 
const char * exif_tag_table_get_name (unsigned int n)
 
unsigned int exif_tag_table_count (void)
 Return the number of entries in the EXIF tag table, including the terminating NULL entry.
 

Detailed Description

Handling EXIF tags.

Macro Definition Documentation

◆ EXIF_TAG_UNKNOWN_C4A5

#define EXIF_TAG_UNKNOWN_C4A5   EXIF_TAG_PRINT_IMAGE_MATCHING
Deprecated:
Use EXIF_TAG_PRINT_IMAGE_MATCHING instead.

Enumeration Type Documentation

◆ ExifSupportLevel

What level of support a tag enjoys in the EXIF standard.

Enumerator
EXIF_SUPPORT_LEVEL_UNKNOWN 

The meaning of this tag is unknown.

EXIF_SUPPORT_LEVEL_NOT_RECORDED 

This tag is not allowed in the given IFD.

EXIF_SUPPORT_LEVEL_MANDATORY 

This tag is mandatory in the given IFD.

EXIF_SUPPORT_LEVEL_OPTIONAL 

This tag is optional in the given IFD.

Function Documentation

◆ exif_tag_from_name()

ExifTag exif_tag_from_name ( const char *  name)

Return the tag ID given its unique textual name.

Parameters
[in]nametag name
Returns
tag ID, or 0 if tag not found
Note
The tag not found value cannot be distinguished from a legitimate tag number 0.

◆ exif_tag_get_description()

const char * exif_tag_get_description ( ExifTag  tag)

◆ exif_tag_get_description_in_ifd()

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.

The description is a verbose, localized description of the tag.

Parameters
[in]tagEXIF tag
[in]ifdIFD
Returns
textual description of the tag, or NULL if the tag is unknown

◆ exif_tag_get_name()

const char * exif_tag_get_name ( ExifTag  tag)

◆ exif_tag_get_name_in_ifd()

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.

The name is a short, unique, non-localized text string containing only US-ASCII alphanumeric characters.

Parameters
[in]tagEXIF tag
[in]ifdIFD
Returns
textual name of the tag, or NULL if the tag is unknown

◆ exif_tag_get_support_level_in_ifd()

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 specification.

If the IFD given is EXIF_IFD_COUNT, the result is EXIF_SUPPORT_LEVEL_UNKNOWN. If the data type is EXIF_DATA_TYPE_UNKNOWN, the result is EXIF_SUPPORT_LEVEL_UNKNOWN unless the support level is the same for all data types.

Parameters
[in]tagEXIF tag
[in]ifdIFD or EXIF_IFD_COUNT
[in]tdata type or EXIF_DATA_TYPE_UNKNOWN
Returns
the level of support for this tag

References EXIF_SUPPORT_LEVEL_UNKNOWN.

◆ exif_tag_get_title()

const char * exif_tag_get_title ( ExifTag  tag)

◆ exif_tag_get_title_in_ifd()

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.

The title is a short, localized description of the tag.

Parameters
[in]tagEXIF tag
[in]ifdIFD
Returns
textual title of the tag, or NULL if the tag is unknown