24 #ifndef LIBEXIF_EXIF_DATA_H
25 #define LIBEXIF_EXIF_DATA_H
251 #define exif_data_get_entry(d,t) \
252 (exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \
253 exif_content_get_entry(d->ifd[EXIF_IFD_0],t) : \
254 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) ? \
255 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) : \
256 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) ? \
257 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) : \
258 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) ? \
259 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) : \
260 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) ? \
261 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) : NULL)
Defines the ExifByteOrder enum and the associated functions.
ExifByteOrder
Which byte order to use.
ExifDataType
Represents the type of image data to which the EXIF data applies.
void exif_data_set_byte_order(ExifData *data, ExifByteOrder order)
Set the byte order to use for this EXIF data.
ExifData * exif_data_new(void)
Allocate a new ExifData.
void exif_data_unref(ExifData *data)
void exif_data_free(ExifData *data)
const char * exif_data_option_get_name(ExifDataOption o)
Return a short textual description of the given ExifDataOption.
ExifByteOrder exif_data_get_byte_order(ExifData *data)
Return the byte order in use by this EXIF structure.
ExifDataOption
Options to configure the behaviour of ExifData.
@ EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE
Leave the MakerNote alone, which could cause it to be corrupted.
@ EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS
Act as though unknown tags are not present.
@ EXIF_DATA_OPTION_FOLLOW_SPECIFICATION
Fix the EXIF tags to follow the spec.
void exif_data_ref(ExifData *data)
const char * exif_data_option_get_description(ExifDataOption o)
Return a verbose textual description of the given ExifDataOption.
ExifDataType exif_data_get_data_type(ExifData *d)
Return the data type for the given ExifData.
ExifData * exif_data_new_from_data(const unsigned char *data, unsigned int size)
Allocate a new ExifData and load EXIF data from a memory buffer.
ExifMnoteData * exif_data_get_mnote_data(ExifData *d)
Return the MakerNote data out of the EXIF data.
void exif_data_fix(ExifData *d)
Fix the EXIF data to bring it into specification.
void exif_data_dump(ExifData *data)
Dump all EXIF data to stdout.
void(* ExifDataForeachContentFunc)(ExifContent *, void *user_data)
void exif_data_unset_option(ExifData *d, ExifDataOption o)
Clear the given option on the given ExifData.
void exif_data_set_data_type(ExifData *d, ExifDataType dt)
Set the data type for the given ExifData.
ExifData * exif_data_new_from_file(const char *path)
Allocate a new ExifData and load EXIF data from a JPEG file.
void exif_data_save_data(ExifData *data, unsigned char **d, unsigned int *ds)
Store raw EXIF data representing the ExifData structure into a memory buffer.
void exif_data_foreach_content(ExifData *data, ExifDataForeachContentFunc func, void *user_data)
Execute a function on each IFD in turn.
ExifData * exif_data_new_mem(ExifMem *)
Allocate a new ExifData using the given memory allocator.
void exif_data_load_data(ExifData *data, const unsigned char *d, unsigned int size)
Load the ExifData structure from the raw JPEG or EXIF data in the given memory buffer.
void exif_data_log(ExifData *data, ExifLog *log)
Set the log message object for all IFDs.
void exif_data_set_option(ExifData *d, ExifDataOption o)
Set the given option on the given ExifData.
@ EXIF_IFD_COUNT
Not a real value, just (max_value + 1).
Log message infrastructure.
Define the ExifMem data type and the associated functions.
Handling EXIF MakerNote tags.
Represents the entire EXIF data found in an image.
unsigned char * data
Pointer to thumbnail image, or NULL if not available.
unsigned int size
Number of bytes in thumbnail image at data.
ExifContent * ifd[EXIF_IFD_COUNT]
Data for each IFD.