Python脚本批量处理图片,缩放裁剪压缩到指定大小

本文将介绍如何使用Python编写脚本批量处理图片。我们将使用Pillow库来缩放、裁剪和压缩图片,并使用MD5哈希值来重命名输出文件。通过本文的学习,您将学习如何使用Python快速自动化处理大量图片。

简介

对于需要处理大量图片的工作,例如调整图片大小、裁剪图片等,手动处理是非常繁琐的。为了提高工作效率,我们可以使用Python编写脚本来自动化这些任务。在本文中,我们将介绍如何使用Python编写脚本来批量处理图片。

环境准备

在开始编写脚本之前,我们需要确保已安装必要的库。在本文中,我们将使用Pillow库来处理图片。您可以使用以下命令来安装Pillow库:

pip install Pillow

编写Python脚本

from PIL import Image
import os
import hashlib

input_folder = "/Users/rakers/Library/Containers/com.macosgame.iwallpaperstatic/Data/Documents/OriginalImage/"   # 原始图片文件夹路径
output_folder = "./thumb/"  # 处理后图片文件夹路径
target_size = (1920, 1080)   # 目标大小

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

for filename in os.listdir(input_folder):
    if not (filename.endswith('.png') or filename.endswith('.jpeg') or filename.endswith('.jpg')):
        continue

    try:
        with Image.open(os.path.join(input_folder, filename)) as img:
            width, height = img.size
            if width < height:
                new_width = target_size[0]
                new_height = int(height * new_width / width)
            else:
                new_height = target_size[1]
                new_width = int(width * new_height / height)

            resized_img = img.resize((new_width, new_height))
            cropped_img = resized_img.crop((0, 0, target_size[0], target_size[1]))

            # 获取文件的MD5哈希值,并用它作为新文件名
            hash_md5 = hashlib.md5(cropped_img.tobytes())
            new_filename = hash_md5.hexdigest() + '.jpg'

            cropped_img.save(os.path.join(output_folder, new_filename), 'JPEG', quality=95)

    except Exception as e:
        print(f"Error processing {filename}: {str(e)}")

运行测试

python3 thumb.py

坐等输出:

3b9e714d1bc360e8d6d9d099eca2929d

image-20230330200331756

结论

通过使用Python编写脚本,我们可以快速、高效地处理大量图片。在本文中,我们介绍了如何使用Pillow库来缩放、裁剪和压缩图片,并使用MD5哈希值来重命名输出文件。希望这篇文章能够帮助您更好地处理图片。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容