EXIF library (libexif) API  0.6.24
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)   (((a) < (b)) ? (a) : (b))
 
#define MAX(a, b)   (((a) > (b)) ? (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. More...
 
ExifSShort exif_get_sshort (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSShort value from memory. More...
 
ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifLong value from memory. More...
 
ExifSLong exif_get_slong (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSLong value from memory. More...
 
ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifRational value from memory. More...
 
ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSRational value from memory. More...
 
void exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
 Store an ExifShort value into memory in EXIF format. More...
 
void exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value)
 Store an ExifSShort value into memory in EXIF format. More...
 
void exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value)
 Store an ExifLong value into memory in EXIF format. More...
 
void exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
 Store an ExifSLong value into memory in EXIF format. More...
 
void exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value)
 Store an ExifRational value into memory in EXIF format. More...
 
void exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value)
 Store an ExifSRational value into memory in EXIF format. More...
 
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. More...
 
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.

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, and exif_get_short().

◆ exif_get_long()

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

Retrieve an ExifLong value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References exif_get_slong().

Referenced by exif_get_rational().

◆ exif_get_rational()

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

Retrieve an ExifRational value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References exif_get_long().

◆ exif_get_short()

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

Retrieve an ExifShort value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References exif_get_sshort().

Referenced by exif_convert_utf16_to_utf8().

◆ exif_get_slong()

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

Retrieve an ExifSLong value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_get_long(), and exif_get_srational().

◆ exif_get_srational()

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

Retrieve an ExifSRational value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References exif_get_slong().

◆ exif_get_sshort()

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

Retrieve an ExifSShort value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_get_short().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References exif_set_slong().

Referenced by exif_data_save_data(), and exif_set_rational().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References exif_set_long().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References exif_set_sshort().

Referenced by exif_data_save_data().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_set_long(), and exif_set_srational().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References exif_set_slong().

◆ 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]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_set_short().