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} "