summaryrefslogtreecommitdiff
path: root/src/jpeg-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/jpeg-utils.h')
-rw-r--r--src/jpeg-utils.h58
1 files changed, 28 insertions, 30 deletions
diff --git a/src/jpeg-utils.h b/src/jpeg-utils.h
index a682fd1..05a6a49 100644
--- a/src/jpeg-utils.h
+++ b/src/jpeg-utils.h
@@ -26,43 +26,41 @@ G_BEGIN_DECLS
#define SQUARED_SIMPLE_SHAVE_AMOUNT 5 /* percent */
-
-/* TODO: we want to have numerical values here at some point in the future */
-typedef struct {
- gchar *datetime;
- gchar *camera_model;
- gchar *iso;
- gchar *focal_length;
- gchar *focal_length_35mm;
- gchar *aperture;
- gchar *exposure;
- gchar *flash;
-
- gchar *exif_software;
- gchar *exif_imgdesc;
- gchar *exif_artist;
- gchar *exif_copyright;
- gchar *exif_usercomment;
-
- gchar *iptc_objectname;
- gchar *iptc_copyright;
- gchar *iptc_credit;
- gchar *iptc_caption;
- gchar *iptc_author;
-
- gchar *jpeg_comment;
-} TExifData;
+/* EXIF data known keys */
+#define EXIF_APERTURE "Exif.Photo.FNumber"
+#define EXIF_CAMERA_MODEL "Exif.Image.Model"
+#define EXIF_DATETIME "Exif.Photo.DateTimeOriginal"
+#define EXIF_EXPOSURE "Exif.Photo.ExposureTime"
+#define EXIF_FLASH "Exif.Photo.Flash"
+#define EXIF_FOCAL_LENGTH "Exif.Photo.FocalLength"
+#define EXIF_ISO "Exif.Photo.ISOSpeedRatings"
+#define EXIF_IMAGE_DESCRIPTION "Exif.Image.ImageDescription"
+#define EXIF_ARTIST "Exif.Image.Artist"
+#define EXIF_COPYRIGHT "Exif.Image.Copyright"
+#define EXIF_COMMENT "Exif.Photo.UserComment"
+#define IPTC_COPYRIGHT "Iptc.Application2.Copyright"
+#define IPTC_CAPTION "Iptc.Application2.Caption"
+#define IPTC_AUTHOR "Iptc.Application2.Byline"
+#define JPEG_COMMENT "Jpeg.Comment"
+
+
+typedef struct ExifData ExifData;
/*
- * get_exif: retrieve EXIF info from a JPEG image
+ * EXIF and IPTC info retrieval, keeps the source file open until freed
*/
-TExifData * get_exif (const gchar *filename);
+ExifData * read_exif (const gchar *filename);
+void exif_data_free (ExifData *data);
/*
- * free_exif_struct: free allocated structure
+ * Retrieves the value of the specified key or NULL if the key does not exist.
+ * The key argument belongs to Exiv2 namespace - see http://exiv2.org/tags.html
+ *
+ * The get_exif_data_fixed() function does some pretty printing for selected keys.
*/
-void free_exif_data (TExifData *data);
+gchar * get_exif_data (ExifData *exif, const gchar *key);
+gchar * get_exif_data_fixed (ExifData *exif, const gchar *key);
/*