123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- #ifndef __EXIF_DATA_H__
- #define __EXIF_DATA_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <libexif/exif-byte-order.h>
- #include <libexif/exif-data-type.h>
- #include <libexif/exif-ifd.h>
- #include <libexif/exif-log.h>
- #include <libexif/exif-tag.h>
- typedef struct _ExifData ExifData;
- typedef struct _ExifDataPrivate ExifDataPrivate;
- #include <libexif/exif-content.h>
- #include <libexif/exif-mnote-data.h>
- #include <libexif/exif-mem.h>
- struct _ExifData
- {
-
- ExifContent *ifd[EXIF_IFD_COUNT];
-
- unsigned char *data;
-
- unsigned int size;
- ExifDataPrivate *priv;
- };
- ExifData *exif_data_new (void);
- ExifData *exif_data_new_mem (ExifMem *);
- ExifData *exif_data_new_from_file (const char *path);
- ExifData *exif_data_new_from_data (const unsigned char *data,
- unsigned int size);
- void exif_data_load_data (ExifData *data, const unsigned char *d,
- unsigned int size);
- void exif_data_save_data (ExifData *data, unsigned char **d,
- unsigned int *ds);
- void exif_data_ref (ExifData *data);
- void exif_data_unref (ExifData *data);
- void exif_data_free (ExifData *data);
- ExifByteOrder exif_data_get_byte_order (ExifData *data);
- void exif_data_set_byte_order (ExifData *data, ExifByteOrder order);
- ExifMnoteData *exif_data_get_mnote_data (ExifData *d);
- void exif_data_fix (ExifData *d);
- typedef void (* ExifDataForeachContentFunc) (ExifContent *, void *user_data);
- void exif_data_foreach_content (ExifData *data,
- ExifDataForeachContentFunc func,
- void *user_data);
- typedef enum {
-
- EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS = 1 << 0,
-
- EXIF_DATA_OPTION_FOLLOW_SPECIFICATION = 1 << 1,
-
- EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE = 1 << 2
- } ExifDataOption;
- const char *exif_data_option_get_name (ExifDataOption o);
- const char *exif_data_option_get_description (ExifDataOption o);
- void exif_data_set_option (ExifData *d, ExifDataOption o);
- void exif_data_unset_option (ExifData *d, ExifDataOption o);
- void exif_data_set_data_type (ExifData *d, ExifDataType dt);
- ExifDataType exif_data_get_data_type (ExifData *d);
- void exif_data_dump (ExifData *data);
- void exif_data_log (ExifData *data, ExifLog *log);
- #define exif_data_get_entry(d,t) \
- (exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \
- exif_content_get_entry(d->ifd[EXIF_IFD_0],t) : \
- exif_content_get_entry(d->ifd[EXIF_IFD_1],t) ? \
- exif_content_get_entry(d->ifd[EXIF_IFD_1],t) : \
- exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) ? \
- exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) : \
- exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) ? \
- exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) : \
- exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) ? \
- exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) : NULL)
- #ifdef __cplusplus
- }
- #endif
- #endif
|