详解Python PIL Image.thumbnail() 方法

  • Post category:Python

当开发者需要将一张图片缩略到指定大小时,可以使用Python中的Pillow模块提供的Image.thumbnail()方法。

方法介绍

方法原型如下:

Image.thumbnail(size, resample=None)

其中,size是一个元组,表示的是缩略图大小(width, height),resample参数是可选参数,表示图像缩放采用何种算法,默认采用Image.BICUBIC算法。

该方法执行后,将直接改变图片的原始大小,而非返回一个新的缩略图。

示例说明

示例一

在示例一中,我们将一张形状为(2000, 1500)的图片缩略到(200, 150)的大小:

from PIL import Image

# 打开图片
image = Image.open('example.jpg')
# 缩略到指定大小
image.thumbnail((200,150))
# 保存缩略图
image.save('thumbnail.jpg')

以上代码中,我们首先打开了一张名为example.jpg的图片,然后使用thumbnail()方法将宽度缩略到200,高度缩略到150。最后将缩略后的图片保存到名为thumbnail.jpg的文件中。

示例二

在示例二中,我们演示了如何将文件夹中所有的图片都进行缩略:

import os
from PIL import Image

# 读取文件夹中的图片
folder_path = 'folder'
for dirpath, dirnames, filenames in os.walk(folder_path):
    for filename in filenames:
        # 判断文件类型是否为图片
        if filename.endswith('.jpg') or filename.endswith('.png'):
            # 打开图片
            image = Image.open(os.path.join(dirpath, filename))
            # 缩小图片大小
            image.thumbnail((200,150))
            # 保存图片并覆盖原文件
            image.save(os.path.join(dirpath, filename))

以上代码中,我们首先使用Python内置的os模块读取了文件夹folder中的所有文件,然后使用Image.open()方法打开每张图片,将宽度缩略到200,高度缩略到150。最后使用Image.save()方法将缩略后的图片覆盖原文件保存。