diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2012-04-15 22:39:24 +0200 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2012-04-15 22:39:24 +0200 |
| commit | 6f0b21b11f8711ef425069b277a1c743202174a7 (patch) | |
| tree | 92977e4b13b4b270bfa4a09f8ca97d19f4495c8a /src/jpeg-utils.cpp | |
| parent | 713c2d86d9335a9c681357254d4bc4f817626259 (diff) | |
| download | cataract-6f0b21b11f8711ef425069b277a1c743202174a7.tar.xz | |
Add HAS_EXIF define
This brings a new HAS_EXIF define which is present when
EXIF information are available. Templates have been modified
to inform user when not available.
The test for EXIF metadata presence is fairly basic, we only look
for aperture, focal length and exposure time attributes. This might
be a subject to change in the future.
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) |
