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

  • Post category:Python

要使用Python PIL对指定文件夹中的所有图片进行修改,可按以下步骤操作:

1. 安装PIL库

在命令行或终端中输入以下命令安装PIL库:

pip install Pillow

2. 导入PIL库以及其他必要的库

在Python文件的开头,导入PIL库以及其他必要的库:

from PIL import Image
import os

3. 遍历文件夹内的所有图片

使用for循环遍历文件夹内的所有图片,并打开每个图片:

folder_path = '/path/to/folder/'  # 文件夹路径
for filename in os.listdir(folder_path):
    if filename.endswith('.jpg') or filename.endswith('.png'):  # 只处理jpg和png格式的图片
        img_path = os.path.join(folder_path, filename)  # 图片路径
        img = Image.open(img_path)  # 打开图片

4. 修改图片

按需求修改图片,例如修改尺寸:

new_size = (800, 600)  # 新的尺寸
img = img.resize(new_size)  # 修改尺寸

5. 保存修改后的图片

使用save()方法保存修改后的图片,要注意保存的文件名不能与原文件重名:

new_filename = 'new_' + filename  # 新的文件名
new_img_path = os.path.join(folder_path, new_filename)  # 新的图片路径
img.save(new_img_path)  # 保存修改后的图片

示例说明:

示例1:批量修改图片尺寸

假设要将一个文件夹内的所有图片都修改为宽度为800像素,高度为600像素,可按以下步骤操作:

from PIL import Image
import os

folder_path = '/path/to/folder/'  # 文件夹路径
new_size = (800, 600)  # 新的尺寸

for filename in os.listdir(folder_path):
    if filename.endswith('.jpg') or filename.endswith('.png'):  # 只处理jpg和png格式的图片
        img_path = os.path.join(folder_path, filename)  # 图片路径
        img = Image.open(img_path)  # 打开图片
        img = img.resize(new_size)  # 修改尺寸
        new_filename = 'new_' + filename  # 新的文件名
        new_img_path = os.path.join(folder_path, new_filename)  # 新的图片路径
        img.save(new_img_path)  # 保存修改后的图片

示例2:批量修改图片格式

假设要将一个文件夹内的所有png图片都转换为jpg格式,可按以下步骤操作:

from PIL import Image
import os

folder_path = '/path/to/folder/'  # 文件夹路径

for filename in os.listdir(folder_path):
    if filename.endswith('.png'):  # 只处理png格式的图片
        img_path = os.path.join(folder_path, filename)  # 图片路径
        img = Image.open(img_path)  # 打开图片
        new_filename = filename.split('.')[0] + '.jpg'  # 新的文件名
        new_img_path = os.path.join(folder_path, new_filename)  # 新的图片路径
        img.save(new_img_path)  # 保存修改后的图片
        os.remove(img_path)  # 删除原文件

详见示例说明中的Python代码,可根据需求自行修改。