世外云

python 批量压缩文件

Guetzli 是一个由 Google 开发的开源图像压缩库,它使用现代的 JavaScript 引擎(例如 V8)来实现高效的图像压缩,与传统的 PNG 和 JPEG 格式相比,Guetzli 可以提供更好的压缩效果,同时保持较好的图像质量,在 Python 中,我们可以使用第三方库 `Pillow` 和 `imageio-ffmpeg` 来调用 Guetzli 对图片进行批量压缩。

确保已经安装了所需的库:

python 批量压缩文件-图1
pip install Pillow imageio-ffmpeg

接下来,我们编写一个 Python 脚本来实现批量压缩图片的功能:

import os
from PIL import Image
import imageio_ffmpeg as imf

def compress_images(input_folder, output_folder, quality=85):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f'compressed_{filename}')
            img = Image.open(input_path)
            img.save(output_path, optimize=True, quality=quality)
            print(f"Compressed {filename} to {output_path}")

if __name__ == "__main__":
    input_folder = "images"
    output_folder = "compressed_images"
    compress_images(input_folder, output_folder)

在这个脚本中,我们定义了一个名为 `compress_images` 的函数,它接受三个参数:`input_folder`(输入文件夹),`output_folder`(输出文件夹)和 `quality`(压缩质量,默认为 85),函数会遍历输入文件夹中的所有图片文件(支持 PNG、JPG 和 JPEG 格式),使用 Guetzli 对它们进行压缩,并将压缩后的图片保存到输出文件夹中。

运行这个脚本后,你会在 `compressed_images` 文件夹中看到压缩后的图片。

python compress_images.py

相关问题与解答:

python 批量压缩文件-图2

问题1:如何设置不同的压缩质量?

在 `compress_images` 函数中,可以通过修改 `quality` 参数来设置不同的压缩质量,数值范围为 0(最低质量,最高压缩率)到 100(最高质量,最低压缩率),默认值为 85,可以根据需要调整该值以获得最佳的压缩效果和图像质量。

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表
  • 琴瑟和
    2024年10月18日 14:05:06
    Python批量压缩文件文章详实,示例清晰,不仅提升了工作效率,还降低了存储空间需求,为Python爱好者提供了宝贵的技巧,推荐一读!