使用Python和PIL(Python Imaging Library)来压缩图像的过程相对简单。下面是详细的攻略:
安装PIL模块
首先需要安装Pillow模块,它可以让我们使用PIL来处理图像。在控制台输入以下命令即可:
pip install pillow
导入PIL模块
安装完模块后,在Python中导入模块:
from PIL import Image
加载图像
使用PIL打开要压缩的图像:
image = Image.open("image.jpg")
压缩图像
使用resize()函数可以压缩图像。需要指定新图像的大小,这里可以使用元组来描述新图像的宽度和高度,如(1024, 768)。
# 压缩并保存图像
new_image = image.resize((1024, 768))
new_image.save("new_image.jpg")
完整示例1
下面的示例将原始图像缩小50%的大小,并保存为新图像。
from PIL import Image
# 加载原始图像
image = Image.open("image.jpg")
# 压缩图像
new_image = image.resize((image.size[0]//2, image.size[1]//2))
# 保存新图像
new_image.save("new_image.jpg")
完整示例2
下面的示例将原始图像压缩到指定的文件大小。将图像尺寸设为(1280, 960),然后根据图像质量调整压缩比例,直到生成的新图像小于300KB即可。
from PIL import Image
import os
def compress_image(infile, outfile):
'''
压缩图片
:param infile: 原图片路径
:param outfile: 压缩后图片保存路径
'''
try:
# 加载原始图像
im = Image.open(infile)
# 设置压缩参数
quality = 90
while True:
# 压缩图像
im.thumbnail((1280, 960), Image.ANTIALIAS)
# 保存新图像并获取文件大小
outfile_size = os.path.getsize(outfile)
im.save(outfile, quality=quality)
# 根据文件大小调整压缩参数
if outfile_size < 300000:
break
else:
quality -= 10
except Exception as e:
print(e)
# 测试
compress_image("image.jpg", "new_image.jpg")
通过这两个示例,我们可以看出在Python和PIL中压缩图像非常容易。第一个示例压缩的图像形状为固定的(1024,768),而第二个示例将图像压缩到指定的文件大小。在实际应用中可以根据需要灵活选择压缩方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解如何使用Python和PIL来压缩图像 - Python技术站