python实现图像文件等比例压缩

图像文件压缩。使用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)

运行结果:
python实现图像文件等比例压缩_第1张图片
更改前:
python实现图像文件等比例压缩_第2张图片
python实现图像文件等比例压缩_第3张图片
更改后:
python实现图像文件等比例压缩_第4张图片
python实现图像文件等比例压缩_第5张图片

你可能感兴趣的:(python实现图像文件等比例压缩)