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

EXIF library (libexif) API 0.6.22

Macros | Typedefs | Enumerations | Functions
exif-tag.h File Reference

Handling EXIF tags. More...

`#include <libexif/exififd.h>`
`#include <libexif/exiftype.h>`

Go to the source code of this file.

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

## Typedefs
typedef uint32_t | ExifTag
| EXIF tags.

## Enumerations
enum | ExifSupportLevel { EXIF_SUPPORT_LEVEL_UNKNOWN = 0 , EXIF_SUPPORT_LEVEL_NOT_RECORDED , EXIF_SUPPORT_LEVEL_MANDATORY , EXIF_SUPPORT_LEVEL_OPTIONAL , 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
| EXIF_API (ExifTag) exif_tag_from_name(const char *name)
| Return the tag ID given its unique textual name.
| EXIF_API (const char *) exif_tag_get_name_in_ifd(ExifTag tag
| Return a textual name of the given tag when found in the given IFD.
| exif_enum (ExifIfd) ifd)
| EXIF_API (ExifSupportLevel) exif_tag_get_support_level_in_ifd(ExifTag tag
| Return whether the given tag is mandatory or not in the given IFD and data type according to the EXIF specification.
| exif_enum (ExifDataType) t)

## 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

enum 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_API() [1/3]

EXIF_API | ( | const char * |  | ) |

Return a textual name of the given tag when found in the given IFD.

Return a textual description of the given class of error log.

Return a textual name of the given IFD.

Return a textual representation of the given EXIF data type.

Return a short textual description of the given ExifDataOption.

Return a short, localized, textual name for the given byte order.

Return a verbose textual description of the given tag when found in the given IFD.

Return a textual title 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] | tag | EXIF tag
  [in] | ifd | IFD

Returns
  textual name of the tag, or NULL if the tag is unknown

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

Parameters

  [in] | tag | EXIF tag
  [in] | ifd | IFD

Returns
  textual title of the tag, or NULL if the tag is unknown

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

Parameters

  [in] | tag | EXIF tag
  [in] | ifd | IFD

Returns
  textual description of the tag, or NULL if the tag is unknown

Deprecated:
  Use exif_tag_get_name_in_ifd instead

Deprecated:
  Use exif_tag_get_title_in_ifd instead

Deprecated:
  Use exif_tag_get_description_in_ifd instead

## ◆ EXIF_API() [2/3]

EXIF_API | ( | ExifSupportLevel |  | ) |

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] | tag | EXIF tag
  [in] | ifd | IFD or EXIF_IFD_COUNT
  [in] | t | data type or EXIF_DATA_TYPE_UNKNOWN

Returns
  the level of support for this tag

## ◆ EXIF_API() [3/3]

EXIF_API | ( | ExifLong |  | ) | const

Return the tag ID given its unique textual name.

Parameters

  [in] | name | tag 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.

Return the tag ID given its unique textual name.

Parameters

  [in] | b | pointer to raw EXIF value in memory
  [in] | order | byte order of raw value

Returns
  value