From 08726427aab2afc80d34743d98b06de48eb8371b Mon Sep 17 00:00:00 2001 From: Krzysztof Kotowicz Date: Sat, 21 Sep 2024 09:47:08 +0200 Subject: [PATCH] Don't re-export JPEG files if their images are not altered. --- contrib/ultrahdr.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/contrib/ultrahdr.lua b/contrib/ultrahdr.lua index 2ccf2eb..c6cf9dc 100644 --- a/contrib/ultrahdr.lua +++ b/contrib/ultrahdr.lua @@ -287,20 +287,28 @@ local function generate_ultrahdr(encoding_variant, images, settings, step, total job.percent = (total_substeps * step + substep) / (total_steps * total_substeps) end + function copy_or_export_jpg(src, dest) + if df.get_filetype(src.filename) == "jpg" and not src.is_altered then + df.file_copy(src.path .. PS .. src.filename, dest) + else + local exporter = dt.new_format("jpeg") + exporter.quality = 95 + exporter:write_image(src, dest) + end + end + if encoding_variant == ENCODING_VARIANT_SDR_AND_GAINMAP or encoding_variant == ENCODING_VARIANT_SDR_AUTO_GAINMAP then total_substeps = 6 - -- Export both SDR and gainmap to JPEGs - local exporter = dt.new_format("jpeg") - exporter.quality = 95 + -- Export/copy both SDR and gainmap to JPEGs local sdr = df.create_unique_filename(settings.tmpdir .. PS .. df.chop_filetype(images["sdr"].filename) .. ".jpg") - exporter:write_image(images["sdr"], sdr) + copy_or_export_jpg(images["sdr"], sdr) local gainmap if encoding_variant == ENCODING_VARIANT_SDR_AUTO_GAINMAP then -- SDR is also a gainmap gainmap = sdr else gainmap = df.create_unique_filename(settings.tmpdir .. PS .. images["gainmap"].filename .. "_gainmap.jpg") - exporter:write_image(images["gainmap"], gainmap) + copy_or_export_jpg(images["gainmap"], gainmap) end log.msg(log.debug, string.format(_("Exported files: %s, %s"), sdr, gainmap)) update_job_progress()