From e70dd5614296eb58794ea5ad4b49b8369dba48b8 Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Tue, 28 Nov 2023 19:07:09 +0300 Subject: [PATCH] FFMpeg-Compressor: FallBackExtension parameter --- FFMpeg-Compressor/README.md | 1 + FFMpeg-Compressor/ffmpeg-comp.toml | 1 + FFMpeg-Compressor/modules/compressor.py | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/FFMpeg-Compressor/README.md b/FFMpeg-Compressor/README.md index 34129ff..4ce9e0b 100644 --- a/FFMpeg-Compressor/README.md +++ b/FFMpeg-Compressor/README.md @@ -20,6 +20,7 @@ Python utility uses ffmpeg to compress Visual Novel Resources #### IMAGE section * Extension - Required image file extension. It supports: `.apng`, `.avif`, `.bmp`, `.tga`, `.tiff`, `.dds`, `.svg`, `.webp`, `.jpg/.jpeg`, `.png` +* FallBackExtension - Extension if current format does not support RGBA. * Lossless - Enables lossless copression for supported formats. With this quality parameter means quality of compression. (default: `false`) * Quality - Quality level of images. Values range: `0-100` (100 - best quality, 0 - worst quality) diff --git a/FFMpeg-Compressor/ffmpeg-comp.toml b/FFMpeg-Compressor/ffmpeg-comp.toml index a8c1df5..3840e5a 100644 --- a/FFMpeg-Compressor/ffmpeg-comp.toml +++ b/FFMpeg-Compressor/ffmpeg-comp.toml @@ -10,6 +10,7 @@ BitRate = "320k" [IMAGE] Extension = "avif" +FallBackExtension = "webp" Lossless = false Quality = 80 diff --git a/FFMpeg-Compressor/modules/compressor.py b/FFMpeg-Compressor/modules/compressor.py index 0c437e5..2203081 100644 --- a/FFMpeg-Compressor/modules/compressor.py +++ b/FFMpeg-Compressor/modules/compressor.py @@ -62,11 +62,11 @@ def compress_image(folder, file, target_folder, extension): image = Image.open(f'{folder}/{file}') - if (extension == "jpg" or extension == "jpeg" or + if (extension == "jpg" or extension == "jpeg" or extension == "avif" or (extension == "webp" and not configloader.config['FFMPEG']['WebpRGBA'])): if has_transparency(Image.open(f'{folder}/{file}')): - printer.warning(f"{file} has transparency. Changing to png...") - extension = ".png" + printer.warning(f"{file} has transparency. Changing to fallback...") + extension = configloader.config['IMAGE']['FallBackExtension'] printer.files(file, os.path.splitext(file)[0], extension, f"{quality}%") image.save(f"{target_folder}/{os.path.splitext(file)[0]}.{extension}",