diff options
Diffstat (limited to 'src/generators.c')
| -rw-r--r-- | src/generators.c | 15 |
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); } |
