FFMpeg-Compressor: Add resolution scaledown

This commit is contained in:
OleSTEEP 2024-04-12 17:19:53 +03:00
parent 7c355e38f7
commit f9f6afe95a
2 changed files with 8 additions and 2 deletions

View file

@ -10,10 +10,11 @@ Extension = "opus"
BitRate = "128k" BitRate = "128k"
[IMAGE] [IMAGE]
ResDownScale = 1
Extension = "avif" Extension = "avif"
FallBackExtension = "webp" FallBackExtension = "webp"
Lossless = false Lossless = true
Quality = 80 Quality = 100
[VIDEO] [VIDEO]
Extension = "webm" Extension = "webm"

View file

@ -66,12 +66,17 @@ def compress_image(folder, file, target_folder, extension):
try: try:
image = Image.open(f'{folder}/{file}') image = Image.open(f'{folder}/{file}')
width, height = image.size
res_downscale = configloader.config['IMAGE']['ResDownScale']
new_size = (int(width / res_downscale), int(height / res_downscale))
if (extension == "jpg" or extension == "jpeg" or extension == "avif" or if (extension == "jpg" or extension == "jpeg" or extension == "avif" or
(extension == "webp" and not configloader.config['FFMPEG']['WebpRGBA'])): (extension == "webp" and not configloader.config['FFMPEG']['WebpRGBA'])):
if has_transparency(image): if has_transparency(image):
printer.warning(f"{file} has transparency. Changing to fallback...") printer.warning(f"{file} has transparency. Changing to fallback...")
extension = configloader.config['IMAGE']['FallBackExtension'] extension = configloader.config['IMAGE']['FallBackExtension']
image = image.resize(new_size)
image.save(utils.check_duplicates(f"{target_folder}/{os.path.splitext(file)[0]}.{extension}"), image.save(utils.check_duplicates(f"{target_folder}/{os.path.splitext(file)[0]}.{extension}"),
optimize=True, optimize=True,
lossless=configloader.config['IMAGE']['Lossless'], lossless=configloader.config['IMAGE']['Lossless'],