summaryrefslogtreecommitdiff
path: root/jpeg-utils.cpp
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-01-01 13:33:15 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-01-01 13:33:15 +0100
commit4d7022e3ed85369f8016ca7547ed310e8ee12a86 (patch)
treeb8c19833708bdffdc4ffd125862acca67a7d6537 /jpeg-utils.cpp
parentd928fd7db816c5eb6f57f90ebefb55779aebdcc9 (diff)
downloadcataract-4d7022e3ed85369f8016ca7547ed310e8ee12a86.tar.xz
Support for adding copyright
Diffstat (limited to 'jpeg-utils.cpp')
-rw-r--r--jpeg-utils.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/jpeg-utils.cpp b/jpeg-utils.cpp
index cb06abc..c884ef4 100644
--- a/jpeg-utils.cpp
+++ b/jpeg-utils.cpp
@@ -377,11 +377,17 @@ calculate_sizes (const unsigned long max_width, const unsigned long max_height,
/*
- * strip_thumbnail: strip thumbnail stored in EXIF table
+ * modify_exif: - strip thumbnail stored in EXIF table
+ * - add copyright to Exif::Image::Copyright and Iptc::Application2::Copyright
*/
void
-strip_thumbnail (const char *filename)
+modify_exif (const char *filename, gboolean strip_thumbnail, const char *add_copyright)
{
+ bool was_modified = false;
+
+ if ((! strip_thumbnail) && (add_copyright == NULL))
+ return;
+
try
{
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
@@ -389,17 +395,23 @@ strip_thumbnail (const char *filename)
image->readMetadata();
Exiv2::ExifData &exifData = image->exifData();
- if (! exifData.empty()) {
+ if (add_copyright) {
+ exifData["Exif.Image.Copyright"] = add_copyright;
+ image->iptcData()["Iptc.Application2.Copyright"] = add_copyright;
+ was_modified = true;
+ }
+ if (strip_thumbnail && (! exifData.empty())) {
std::string thumbExt = exifData.thumbnailExtension();
if (! thumbExt.empty()) {
exifData.eraseThumbnail();
- image->writeMetadata();
+ was_modified = true;
}
}
+ if (was_modified)
+ image->writeMetadata();
}
catch (Exiv2::AnyError& e)
{
- fprintf (stderr, "strip_thumbnail: Caught Exiv2 exception: '%s'\n", e.what());
+ fprintf (stderr, "modify_exif: Caught Exiv2 exception: '%s'\n", e.what());
}
}
-