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)

运行结果:
在这里插入图片描述
更改前:
在这里插入图片描述
在这里插入图片描述
更改后:
在这里插入图片描述
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值