diff options
Diffstat (limited to 'src/jpeg-utils.cpp')
| -rw-r--r-- | src/jpeg-utils.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/jpeg-utils.cpp b/src/jpeg-utils.cpp index 031ecc0..389b8e4 100644 --- a/src/jpeg-utils.cpp +++ b/src/jpeg-utils.cpp @@ -197,6 +197,41 @@ get_exif_data_fixed (ExifData *exif, const gchar *key) return get_exif_data (exif, key); } +/* + * Returns TRUE if the image contains the key specified + */ +gboolean +exif_has_key (ExifData *exif, const gchar *key) +{ + g_return_val_if_fail (exif != NULL, FALSE); + g_return_val_if_fail (key != NULL, FALSE); + + try { + if (g_strcmp0 (key, JPEG_COMMENT) == 0) { + return (! exif->image->comment().empty()); + } + + if (g_str_has_prefix (key, "Exif.")) { + Exiv2::ExifData &exifData = exif->image->exifData(); + if (! exifData.empty()) { + return (! exifData[key].toString().empty()); + } + } + + if (g_str_has_prefix (key, "Iptc.")) { + Exiv2::IptcData &iptcData = exif->image->iptcData(); + if (! iptcData.empty()) { + return (! iptcData[key].toString().empty()); + } + } + + return FALSE; + } + catch (...) { + return FALSE; + } +} + static void autorotate_image (MagickWand *magick_wand) |
