以下是一个可以批量无损压缩图片的 Python 代码,使用了 jpegtran 工具:

import os
import shutil
import subprocess

def compress_images(input_dir, output_dir):
    if os.path.exists(output_dir):
        shutil.rmtree(output_dir)
    os.makedirs(output_dir)
    for root, dirs, files in os.walk(input_dir):
        for file in files:
            if file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.png'):
                input_file = os.path.join(root, file)
                output_file = os.path.join(output_dir, file)
                subprocess.call(['jpegtran', '-copy', 'none', '-optimize', '-perfect', '-outfile', output_file, input_file])

if __name__ == '__main__':
    input_dir = '/path/to/input/dir'
    output_dir = '/path/to/output/dir'
    compress_images(input_dir, output_dir)

该代码首先删除输出目录,然后创建一个新的输出目录。接着遍历输入目录下的所有文件,如果是 jpg、jpeg 或 png 格式的图片,则使用 jpegtran 工具进行无损压缩,并将压缩后的图片保存到输出目录中。注意,该代码需要在安装 jpegtran 工具的前提下才能运行。

Python 批量无损压缩图片代码 - 使用 jpegtran 工具

原文地址: https://www.cveoy.top/t/topic/mXf9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录