图像文件压缩。使用PIL库对图像进行等比例压缩,无论压缩前文件大小如何,压缩后文件大小小于10KB。
from PIL import Image#引入PIL库中的Image类
import os#引入os 模块
使用Image类中的open()方法从文件加载图像,使用其中的size属性获得图像的宽度和高度。
os模块中的path.getsize ()方法可以获得文件的大小,单位是字节B(1B=8Bit,1KB=1024B)。
picture=input("请输入图片的名称以及格式:")
image=Image.open(picture)
size=os.path.getsize(picture)/1024
width,height=image.size
通过while循环,不断改变图像的宽度和高度,进而改变图像的内存大小。使用Image类中的resize()方法重置改变后的图像的高度和宽度,并使用save()方法将改变后的图像另存为其他名称。直到满足要求,结束循环。
ima=input("请输入修改后的图片名称和格式:")
while True:
if size>10:
width,height=round(width*0.9),round(height*0.9)#去掉浮点,防报错
image=image.resize((width,height),Image.ANTIALIAS)
image.save(ima)
size=os.path.getsize(ima)/1024
else:
break
最后可以打印size的大小,进行查看更改后的图像内存。
print(size)
运行结果:
更改前:
更改后: