diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-01-01 13:33:15 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-01-01 13:33:15 +0100 |
| commit | 4d7022e3ed85369f8016ca7547ed310e8ee12a86 (patch) | |
| tree | b8c19833708bdffdc4ffd125862acca67a7d6537 /jpeg-utils.cpp | |
| parent | d928fd7db816c5eb6f57f90ebefb55779aebdcc9 (diff) | |
| download | cataract-4d7022e3ed85369f8016ca7547ed310e8ee12a86.tar.xz | |
Support for adding copyright
Diffstat (limited to 'jpeg-utils.cpp')
| -rw-r--r-- | jpeg-utils.cpp | 24 |
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()); } } - |
