Python 图片压缩

这篇博客介绍了如何使用Python的Pillow库进行图片压缩。作者在开发markdown-img工具时,为了解决大体积图片占用云存储空间的问题,决定添加图片压缩功能。尽管Pillow库存在压缩png图片的缺陷,但由于其便利性和可集成性,作者仍然选择使用它,并通过上下文管理器确保压缩后图片的自动删除。文章还提供了代码示例和相关参考资料。
摘要由CSDN通过智能技术生成

Python 图片压缩

我做了一个处理Markdown图片的小工具markdown-img,在之前给这个工具添加了主流图床支持后功能基本完备了。昨天写了一篇影评的博客扎导版正义联盟观影吐槽,图片都是从电影中截取的,每张都是1Mb以上,颇占云存储空间,所以决定加上图片压缩功能。

bing了一番以后,决定使用Pillow库实现压缩功能,虽然使用 python 压缩 png 图片,高达 80% 压缩率,肉眼无差异(一):为什么不用 pillow库这篇文章说了为什么Pillow库用于压缩的缺陷,但该作者给出的另一个压缩方案是windows软件,只能通过命令行调取,并不能直接通过pip库集成,综合考虑下来还是使用Pillow库,至少作为一个可选项是不错的,后期可以加入其它的压缩服务支持,比如在线无损压缩服务tinypng

先通过pip安装包:

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

因为暂时只有这一个压缩服务,就简单地用单个文件进行组织:

from PIL import Image
from ..config import Config
import os
from ..tools.debug import Debug


class Compress:
    def __init__(self, imageFile: str, compressLimit: int = 500) -> None:
        """初始化压缩上下文管理器
        imageFile: 用于压缩的原图片路径
        compressLimit: 压缩门槛(高于该值的图片才会被压缩,单位kb)
        """
        self.__imageFile = imageFile
        self.__compressLimit: int = compressLimit

    def __enter__(self):
        # 对png图片使用quantize压缩
        basename = os.path.basename(self.__imageFile)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值