diff options
author | Felix Riemann <friemann@svn.gnome.org> | 2008-03-30 10:36:19 +0000 |
---|---|---|
committer | Felix Riemann <friemann@src.gnome.org> | 2008-03-30 10:36:19 +0000 |
commit | 0649fc603c3befb8440ffb2956b311d5d4453e9f (patch) | |
tree | b89de11cc5a863f32fb5d7665c8614c705ce1785 /src/eog-metadata-reader.h | |
parent | 08740e8258f0ce5b26c2417c1f25d8aa4d988f80 (diff) | |
download | eog-0649fc603c3befb8440ffb2956b311d5d4453e9f.tar.gz |
Add PNG metadata reader supporting embedded XMP and color profile data.
2008-03-30 Felix Riemann <friemann@svn.gnome.org>
* src/Makefile.am:
* src/eog-image.c: (check_for_metadata_img_format),
(eog_image_set_icc_data):
* src/eog-metadata-reader-jpg.c:
(eog_metadata_reader_jpg_get_icc_profile),
(eog_metadata_reader_jpg_init_emr_iface):
* src/eog-metadata-reader-jpg.h:
* src/eog-metadata-reader-png.c: (eog_metadata_reader_png_dispose),
(eog_metadata_reader_png_init),
(eog_metadata_reader_png_class_init),
(eog_metadata_reader_png_finished),
(eog_metadata_reader_png_get_next_block),
(eog_metadata_reader_png_consume),
(eog_metadata_reader_png_get_xmp_data),
(eog_metadata_reader_png_get_icc_profile),
(eog_metadata_reader_png_init_emr_iface):
* src/eog-metadata-reader-png.h:
* src/eog-metadata-reader.c: (eog_metadata_reader_new),
(eog_metadata_reader_get_exif_data),
(eog_metadata_reader_get_icc_profile):
* src/eog-metadata-reader.h:
Add PNG metadata reader supporting embedded XMP and color profile
data. This also moves the ICC profile generation using chromacity
and gamma values from EogImage into the readers. Fixes bug #523856.
svn path=/trunk/; revision=4503
Diffstat (limited to 'src/eog-metadata-reader.h')
-rw-r--r-- | src/eog-metadata-reader.h | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/src/eog-metadata-reader.h b/src/eog-metadata-reader.h index d813a726..c62a9254 100644 --- a/src/eog-metadata-reader.h +++ b/src/eog-metadata-reader.h @@ -29,6 +29,9 @@ #if HAVE_EXEMPI #include <exempi/xmp.h> #endif +#if HAVE_LCMS +#include <lcms.h> +#endif G_BEGIN_DECLS @@ -43,51 +46,56 @@ typedef struct _EogMetadataReaderInterface EogMetadataReaderInterface; struct _EogMetadataReaderInterface { GTypeInterface parent; - void (*consume) (EogMetadataReader *self, - const guchar *buf, - guint len); + void (*consume) (EogMetadataReader *self, + const guchar *buf, + guint len); - gboolean (*finished) (EogMetadataReader *self); + gboolean (*finished) (EogMetadataReader *self); - void (*get_raw_exif) (EogMetadataReader *self, - guchar **data, - guint *len); + void (*get_raw_exif) (EogMetadataReader *self, + guchar **data, + guint *len); - gpointer (*get_exif_data) (EogMetadataReader *self); + gpointer (*get_exif_data) (EogMetadataReader *self); - void (*get_icc_chunk) (EogMetadataReader *self, - guchar **data, - guint *len); + gpointer (*get_icc_profile) (EogMetadataReader *self); - gpointer (*get_xmp_ptr) (EogMetadataReader *self); + gpointer (*get_xmp_ptr) (EogMetadataReader *self); }; typedef enum { - EOG_METADATA_JPEG + EOG_METADATA_JPEG, + EOG_METADATA_PNG } EogMetadataFileType; -GType eog_metadata_reader_get_type (void) G_GNUC_CONST; +GType eog_metadata_reader_get_type (void) G_GNUC_CONST; -EogMetadataReader* eog_metadata_reader_new (EogMetadataFileType type); -void eog_metadata_reader_consume (EogMetadataReader *emr, const guchar *buf, guint len); -gboolean eog_metadata_reader_finished (EogMetadataReader *emr); +EogMetadataReader* eog_metadata_reader_new (EogMetadataFileType type); +void eog_metadata_reader_consume (EogMetadataReader *emr, + const guchar *buf, + guint len); +gboolean eog_metadata_reader_finished (EogMetadataReader *emr); -void eog_metadata_reader_get_exif_chunk (EogMetadataReader *emr, guchar **data, guint *len); +void eog_metadata_reader_get_exif_chunk (EogMetadataReader *emr, + guchar **data, + guint *len); #ifdef HAVE_EXIF -ExifData* eog_metadata_reader_get_exif_data (EogMetadataReader *emr); +ExifData* eog_metadata_reader_get_exif_data (EogMetadataReader *emr); #endif #ifdef HAVE_EXEMPI -XmpPtr eog_metadata_reader_get_xmp_data (EogMetadataReader *emr); +XmpPtr eog_metadata_reader_get_xmp_data (EogMetadataReader *emr); #endif #if 0 -gpointer eog_metadata_reader_get_iptc_chunk (EogMetadataReader *emr); -IptcData* eog_metadata_reader_get_iptc_data (EogMetadataReader *emr); +gpointer eog_metadata_reader_get_iptc_chunk (EogMetadataReader *emr); +IptcData* eog_metadata_reader_get_iptc_data (EogMetadataReader *emr); #endif -void eog_metadata_reader_get_icc_chunk (EogMetadataReader *emr, guchar **data, guint *len); +#ifdef HAVE_LCMS +cmsHPROFILE eog_metadata_reader_get_icc_profile (EogMetadataReader *emr); +#endif G_END_DECLS |