From 6468dd6da3764498fcabbf99603f50974f26c2c6 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Sun, 10 Mar 2013 12:41:13 +0100 Subject: Add support for datetime/timezone shift Simple datetime shift, including EXIF data modification. --- src/generators.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/generators.c') diff --git a/src/generators.c b/src/generators.c index 9c65d8e..fe62b39 100644 --- a/src/generators.c +++ b/src/generators.c @@ -146,6 +146,22 @@ get_image_paths (TGallerySetup *setup, } +static void +metadata_apply_overrides (ExifData *exif_data, + TGallerySetup *setup, + TAlbum *items, + TIndexItem *item) +{ + g_return_if_fail (exif_data != NULL); + + g_free (exif_data->override_copyright); + exif_data->override_copyright = g_strdup (setup->add_copyright); + exif_data->timezone_shift = item->metadata_tz_shift; + if (exif_data->timezone_shift == 0) + exif_data->timezone_shift = items->metadata_tz_shift; +} + + /* * generate_image: generate needed image sizes */ @@ -167,6 +183,7 @@ generate_image (TGallerySetup *setup, int quality; GList *l; TImageSize *image_size; + ExifData *exif_data; res = ! query_update; @@ -230,8 +247,12 @@ generate_image (TGallerySetup *setup, } } } - if (! is_thumbnail) - modify_exif (img_dst, setup->erase_exif_thumbnail, setup->add_copyright); + if (! is_thumbnail) { + exif_data = exif_data_new_empty (); + metadata_apply_overrides (exif_data, setup, items, item); + modify_exif (img_dst, exif_data, setup->erase_exif_thumbnail); + exif_data_free (exif_data); + } g_free (img_src); g_free (img_dst); @@ -754,6 +775,7 @@ write_html_image (TGallerySetup *setup, if (exif == NULL) log_error ("write_html_image: error getting exif data from file \"%s\"\n", img_dst); } + metadata_apply_overrides (exif, setup, parent_items, item); /* Test for basic EXIF keys presence */ if (exif != NULL && exif_has_key (exif, EXIF_APERTURE) && exif_has_key (exif, EXIF_FOCAL_LENGTH) && -- cgit v1.2.3