当开发者需要将一张图片缩略到指定大小时,可以使用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()
方法将缩略后的图片覆盖原文件保存。