大家好,我是一行
最近因为工作,经常需要在网站提交一些文件和图片
但是在提交图片的时候,有些网站总是会提醒我你的图片文件过大,请提交不超过 2 MB大小的图片、
想想也正常,不限制图片大小容易被塞爆服务器,但是我手机这1亿像素的照片让我很难办呀
而且在线压缩的网站也有上限大小,不然就收费,不然就收费,不然就收费
这种简单功能我要是还付费,岂不是丢了pythoner的face了吗?!我把它实现了我也去上线~
1原理
仔细分析了一下,图片压缩的原理其实很简单
简单来说,像素图片过大的原因不就是像素格太多了嘛
只要读取所有像素,按规律删掉或者合并像素格,图片的就变小了
当然也要区别有损和无损的情况,只要视觉上过的去,那就没什么问题
2代码块
简单压缩
下面三行代码完成了图片从 9 MB到 327.65 KB 的压缩效果
只需要使用PIL导入图片,再按照压缩率保存就可以了
下面这张结果图,显然压缩过到我都认出来的情况
from PIL import Image
im = Image.open("pic/cat.jpg")
# 保存,quality是压缩比率
im.save("cat