exif-utils.h File Reference

EXIF data manipulation functions and types. More...

`#include <libexif/exif-byte-order.h>`
`#include <libexif/exif-format.h>`
`#include <libexif/_stdint.h>`

Go to the source code of this file.

## Data Structures

struct | ExifRational
| EXIF Unsigned Rational data type. More...
struct | ExifSRational
| EXIF Signed Rational data type. More...

## Macros

#define | MIN(a, b)
#define | MAX(a, b)
#define | EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME

## Typedefs

typedef unsigned char | ExifByte
| EXIF Unsigned Byte data type.
typedef signed char | ExifSByte
| EXIF Signed Byte data type.
typedef char * | ExifAscii
| EXIF Text String data type.
typedef uint16_t | ExifShort
| EXIF Unsigned Short data type.
typedef int16_t | ExifSShort
| EXIF Signed Short data type.
typedef uint32_t | ExifLong
| EXIF Unsigned Long data type.
typedef int32_t | ExifSLong
| EXIF Signed Long data type.
typedef char | ExifUndefined

## Functions

ExifShort | exif_get_short (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifShort value from memory.
ExifSShort | exif_get_sshort (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifSShort value from memory.
ExifLong | exif_get_long (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifLong value from memory.
ExifSLong | exif_get_slong (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifSLong value from memory.
ExifRational | exif_get_rational (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifRational value from memory.
ExifSRational | exif_get_srational (const unsigned char *b, ExifByteOrder order)
| Retrieve an ExifSRational value from memory.
void | exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
| Store an ExifShort value into memory in EXIF format.
void | exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value)
| Store an ExifSShort value into memory in EXIF format.
void | exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value)
| Store an ExifLong value into memory in EXIF format.
void | exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
| Store an ExifSLong value into memory in EXIF format.
void | exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value)
| Store an ExifRational value into memory in EXIF format.
void | exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value)
| Store an ExifSRational value into memory in EXIF format.
void | exif_convert_utf16_to_utf8 (char *out, const unsigned char *in, int maxlen)
| This function converts rather UCS-2LE than UTF-16 to UTF-8.
void | exif_array_set_byte_order (ExifFormat, unsigned char *, unsigned int, ExifByteOrder o_orig, ExifByteOrder o_new)

## Detailed Description

EXIF data manipulation functions and types.

## Macro Definition Documentation

## EXIF_TAG_SUBSEC_TIME

#define EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME

Deprecated
  Use EXIF_TAG_SUB_SEC_TIME instead.

## MAX

#define MAX | ( |  | a,
|  |  | b )

Value:
(((a) > (b)) ? (a) : (b))

## MIN

#define MIN | ( |  | a,
|  |  | b )

Value:
(((a) < (b)) ? (a) : (b))

## Function Documentation

## exif_convert_utf16_to_utf8()

void exif_convert_utf16_to_utf8 | ( | char * | out,
|  | const unsigned char * | in,
|  | int | maxlen )

This function converts rather UCS-2LE than UTF-16 to UTF-8.

It should really be replaced by iconv().

References EXIF_BYTE_ORDER_INTEL.

## exif_get_long()

ExifLong exif_get_long | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifLong value from memory.

Parameters

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

Returns
  value

## exif_get_rational()

ExifRational exif_get_rational | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifRational value from memory.

Parameters

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

Returns
  value

## exif_get_short()

ExifShort exif_get_short | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifShort value from memory.

Parameters

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

Returns
  value

## exif_get_slong()

ExifSLong exif_get_slong | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifSLong value from memory.

Parameters

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

Returns
  value

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

## exif_get_srational()

ExifSRational exif_get_srational | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifSRational value from memory.

Parameters

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

Returns
  value

## exif_get_sshort()

ExifSShort exif_get_sshort | ( | const unsigned char * | b,
|  | ExifByteOrder | order )

Retrieve an ExifSShort value from memory.

Parameters

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

Returns
  value

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

## exif_set_long()

void exif_set_long | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifLong | value )

Store an ExifLong value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

## exif_set_rational()

void exif_set_rational | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifRational | value )

Store an ExifRational value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

## exif_set_short()

void exif_set_short | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifShort | value )

Store an ExifShort value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

## exif_set_slong()

void exif_set_slong | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifSLong | value )

Store an ExifSLong value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

## exif_set_srational()

void exif_set_srational | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifSRational | value )

Store an ExifSRational value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

## exif_set_sshort()

void exif_set_sshort | ( | unsigned char * | b,
|  | ExifByteOrder | order,
|  | ExifSShort | value )

Store an ExifSShort value into memory in EXIF format.

Parameters

  [out] | b | buffer in which to write raw value
  [in] | order | byte order to use
  [in] | value | data value to store

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.