详解使用Python PIL对指定文件夹中的所有图片进行修改

  • Post category:Python

下面是使用Python PIL对指定文件夹中的所有图片进行修改的完整攻略:

准备工作

首先,需要安装 Python PIL 库,使用以下命令:

pip install Pillow

然后,需要准备一些要进行修改的图片文件,放在指定文件夹中。

代码实现

以下是使用 Python PIL 库对指定文件夹中所有图片进行修改的代码:

from PIL import Image
import os

# 指定文件夹路径
folder_path = "/path/to/folder"

# 遍历文件夹中的图片文件
for filename in os.listdir(folder_path):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        # 打开图片文件
        filepath = os.path.join(folder_path, filename)
        img = Image.open(filepath)

        # 修改图片
        # 例如,将图片大小调整为 50% 并保存
        size = (int(img.width / 2), int(img.height / 2))
        img = img.resize(size)
        save_path = os.path.join(folder_path, "new_" + filename)
        img.save(save_path)

        # 关闭图片文件
        img.close()

上述代码中,我们首先指定了一个文件夹路径,然后遍历该文件夹中所有的图片文件(这里只限定了 .jpg.png 格式的图片),并对每张图片进行修改,最后保存到同一文件夹,并加上新的文件名前缀 new_

示例一:将图像文件转换为灰度图像

假设我们的要求是将指定文件夹中所有的彩色图像转换为灰度图像。

我们可以在代码中添加以下行,来实现转换:

# 将图片转换为灰度图像
img = img.convert('L')

示例二:将图像文件压缩为指定大小

假设我们的要求是将指定文件夹中所有的图像文件压缩为指定的大小(例如 500KB)。

我们可以在代码中添加以下行,来实现压缩:

# 将图片压缩为指定大小
max_size = 500 * 1024  # 500KB
quality = 75
if os.path.getsize(filepath) > max_size:
    img.save(filepath, optimize=True, quality=quality)

上述代码中,首先我们指定了需要将图片压缩到的大小(这里是 500KB),然后设置图片的压缩质量(这里是 75),接着判断图片文件的大小是否大于需要压缩到的大小,如果是,则将图片压缩并保存。

总结

使用 Python PIL 库对指定文件夹中所有图片进行修改,需要先遍历文件夹中所有的图片,然后使用 Pillow 库进行图片的修改和保存,最后关闭图片文件。

我们可以根据具体的需求,对图片进行多种修改,例如:调整大小、裁剪、旋转、翻转、滤镜、颜色空间转换、大小压缩等。