From 7d087fc5b6e1e5879ada73ab0e6c12b105d56d8e Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Mon, 9 Oct 2023 23:40:31 +0300 Subject: [PATCH] FFMpeg-Compressor: Option to disabling WebP RGBA --- FFMpeg-Compressor/ffmpeg-comp.toml | 3 ++- FFMpeg-Compressor/modules/compressor.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/FFMpeg-Compressor/ffmpeg-comp.toml b/FFMpeg-Compressor/ffmpeg-comp.toml index 629dc39..820219b 100644 --- a/FFMpeg-Compressor/ffmpeg-comp.toml +++ b/FFMpeg-Compressor/ffmpeg-comp.toml @@ -3,6 +3,7 @@ FFmpegParams = "-n -hide_banner -loglevel quiet" CopyUnprocessed = false MimicMode = false HideErrors = false +WebpRGBA = true [AUDIO] Extension = "mp3" @@ -15,4 +16,4 @@ JpegComp = 3 [VIDEO] Extension = "mp4" -Codec = "libvpx-vp9" +Codec = "libvpx-vp9" \ No newline at end of file diff --git a/FFMpeg-Compressor/modules/compressor.py b/FFMpeg-Compressor/modules/compressor.py index 53305c3..3ae9ca9 100644 --- a/FFMpeg-Compressor/modules/compressor.py +++ b/FFMpeg-Compressor/modules/compressor.py @@ -80,6 +80,18 @@ def compress_image(folder, file, target_folder): f"'{target_folder}/{os.path.splitext(file)[0]}.{get_req_ext(file)}'") else: printer.warning(f"{file} has transparency (.jpg not support it). Skipping...") + + elif get_req_ext(file) == "webp" and configloader.config['FFMPEG']['WebpRGBA']: + if not has_transparency(Image.open(f'{folder}/{file}')): + printer.files(file, os.path.splitext(file)[0], get_req_ext(file), f"{comp_level}%") + os.system(f"ffmpeg -i '{folder}/{file}' {ffmpeg_params} -compression_level {comp_level} " + f"'{target_folder}/{os.path.splitext(file)[0]}.{get_req_ext(file)}'") + else: + printer.warning(f"{file} has transparency, but WebP RGBA disabled in config. Changing to png...") + printer.files(file, os.path.splitext(file)[0], "png", f"{comp_level}%") + os.system(f"ffmpeg -i '{folder}/{file}' {ffmpeg_params} -compression_level {comp_level} " + f"'{target_folder}/{os.path.splitext(file)[0]}.png'") + else: printer.files(file, os.path.splitext(file)[0], get_req_ext(file), f"{comp_level}%") os.system(f"ffmpeg -i '{folder}/{file}' {ffmpeg_params} -compression_level {comp_level} "