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

  • Post category:Python

使用Python PIL(Python Imaging Library)可以对图片进行各种操作,包括裁剪、缩放、旋转、滤镜等。下面是对指定文件夹中的所有图片进行修改的完整攻略。

步骤一:安装PIL

要使用PIL,需要先安装它。可以在命令行中使用pip install命令安装它:

pip install pillow

步骤二:导入库

在Python脚本中导入PIL库:

from PIL import Image
import os

步骤三:获取所有图片路径

使用os库中的listdir()函数,获取指定文件夹(例如“images”文件夹)中所有的图片路径。

path = 'images'
files = os.listdir(path)
image_path_list = [os.path.join(path, file) for file in files if file.endswith('.jpg') or file.endswith('.png')]

步骤四:循环遍历图片进行修改

for image_path in image_path_list:
    with Image.open(image_path) as image:
        # 对图片进行裁剪、缩放、旋转、滤镜等操作
        image.show()   # 展示修改后的图片

在循环中,使用with语句打开图片(这样可以自动关闭图片句柄),并对图片进行裁剪、缩放、旋转、滤镜等操作。可以使用show()函数展示修改后的图片。

示例一:将所有图片裁剪成正方形

for image_path in image_path_list:
    with Image.open(image_path) as image:
        width, height = image.size  # 获取图片大小
        size = min(width, height)   # 获取正方形边长
        left = (width - size) // 2
        top = (height - size) // 2
        right = (width + size) // 2
        bottom = (height + size) // 2
        image = image.crop((left, top, right, bottom))  # 裁剪
        image.show()  # 展示修改后的图片

在上面的示例中,将所有的图片都裁剪成正方形(以长和宽小的那个为边长),并展示修改后的图片。

示例二:将所有图片加上黑白滤镜

for image_path in image_path_list:
    with Image.open(image_path) as image:
        image = image.convert('L')  # 转为灰度图
        image.show()   # 加上黑白滤镜

在上面的示例中,将所有的图片转为灰度图,并加上黑白滤镜,最终展示修改后的图片。

注意:以上示例中的图片修改操作都是示例,具体的修改操作可以根据自己的需求来定制。