summaryrefslogtreecommitdiff
path: root/src/generators.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/generators.c')
-rw-r--r--src/generators.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/generators.c b/src/generators.c
index 52ec1ac..2038424 100644
--- a/src/generators.c
+++ b/src/generators.c
@@ -170,6 +170,12 @@ metadata_apply_overrides (ExifData *exif_data,
exif_data->external_exif_data = NULL;
if (setup->write_supplied_exif && item->metadata_external_exif)
exif_data->external_exif_data = g_build_filename (path_info->src_dir, item->metadata_external_exif, NULL);
+
+ exif_data->squared_thumbnail_type = setup->squared_thumbnail_type;
+
+ exif_data->thumbnail_crop_hint = item->thumbnail_crop_hint;
+ if (exif_data->thumbnail_crop_hint == CROP_HINT_UNDEFINED)
+ exif_data->thumbnail_crop_hint = items->thumbnail_crop_hint;
}
@@ -212,6 +218,9 @@ generate_image (TGallerySetup *setup,
if (img_src == NULL || img_dst == NULL)
continue;
+ exif_data = exif_data_new_empty ();
+ metadata_apply_overrides (exif_data, setup, path_info, items, item);
+
/* Do something when required */
res = res || needs_update (img_src, img_dst);
if (! query_update) {
@@ -251,7 +260,7 @@ generate_image (TGallerySetup *setup,
quality = item->quality;
/* Perform resize and strip */
- if (! resize_image (img_src, img_dst, img_w, img_h, quality, is_thumbnail, setup->squared_thumbnail_type, setup->autorotate))
+ if (! resize_image (img_src, img_dst, img_w, img_h, quality, is_thumbnail, setup->autorotate, exif_data))
log_error ("generate_image: error resizing image %s\n", img_src);
} else {
log_error ("generate_image: image %s sizes are %lux%lu\n", img_src, img_w, img_h);
@@ -259,12 +268,10 @@ generate_image (TGallerySetup *setup,
}
}
if (! is_thumbnail) {
- exif_data = exif_data_new_empty ();
- metadata_apply_overrides (exif_data, setup, path_info, items, item);
modify_exif (img_dst, exif_data, setup->erase_exif_thumbnail, setup->strip_xmp);
- exif_data_free (exif_data);
}
+ exif_data_free (exif_data);
g_free (img_src);
g_free (img_dst);
}