使用Python和PIL(Python Imaging Library)来压缩图像需要先安装Pillow库(PIL的一个分支),在命令行中输入以下命令即可安装:
pip install Pillow
在安装完成后,我们就可以开始压缩图像了。下面是具体的步骤:
1. 导入所需模块
首先需要导入Pillow模块,以及os模块(如果需要遍历文件夹中的所有图片进行压缩):
from PIL import Image
import os
2. 打开图片
使用Pillow中的Image.open()
函数打开图片,并获取图片尺寸、格式等信息。
image = Image.open('image.jpg')
width, height = image.size # 获取图片尺寸
image_format = image.format # 获取图片格式
3. 压缩图片
使用Image.save()
函数对图片进行压缩,第一个参数为压缩后图片的路径和名称,第二个参数为压缩质量(0-100),当压缩质量为60时,压缩比为原图片的60%:
# 压缩质量为60
image.save('compressed_image.jpg', quality=60)
示例1:批量压缩某个目录下的所有图片
# 遍历指定目录下的所有图片,并进行压缩
dir_path = 'path/to/images'
save_path = 'path/to/compressed/images'
for filename in os.listdir(dir_path):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片并进行压缩
image = Image.open(os.path.join(dir_path, filename))
image.save(os.path.join(save_path, filename), quality=60)
示例2:压缩指定尺寸的图片
# 打开图片并进行压缩
image = Image.open('image.jpg')
width, height = image.size
max_size = 1000 # 图片最大边长限制
if width > max_size or height > max_size:
# 对超出最大尺寸限制的图片进行压缩
if width > height:
new_width = max_size
new_height = new_width * height // width
else:
new_height = max_size
new_width = new_height * width // height
image = image.resize((new_width, new_height))
image.save('compressed_image.jpg', quality=60)