千家信息网

如何使用Python实现图片压缩

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何使用Python实现图片压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、引言我们先来看一下,自
千家信息网最后更新 2026年11月01日如何使用Python实现图片压缩

小编给大家分享一下如何使用Python实现图片压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    1、引言

    我们先来看一下,自拍照原图。

    图片大小是 53KB

    接下来,就是展示真正技术的时候了。

    2、PIL模块

    2.1 quality 方式

    2.1.1 普通图片压缩

    我们使用PIL模块的 quality方法来进行压缩

    代码展示:

    # -*- coding: utf-8 -*-# @ auth : carl_DJ# @ time : 2022-01-12from PIL import Image#读取img文件img_file = './pico.jpg'im = Image.open(img_file)#quality 是设置压缩比im.save('pico-ouo.jpg',quality = 20)

    运行结果

    嗯,结果还是比较满意的。

    即满足的小屌丝不想换图片的要求,

    又满足了小屌丝图片被压缩后不失真的要求。

    2.1.2 超大图片压缩

    我们看看超大的图片,能不能被压缩。

    这里我们就用小屌丝的女神照片来进行压缩。

    原图 120M,

    我们看看压缩后能有多少M

    运行代码

    # -*- coding: utf-8 -*-# @ auth : carl_DJ# @ time : 2022-01-12from PIL import Image,ImageFile#防止图片超过178956970 pixels 而报错ImageFile.LOAD_TRUNCATED_IMAGES = TrueImage.MAX_IMAGE_PIXELS = None#读取img文件img_file = './king-letter.jpg'im = Image.open(img_file)#quality 是设置压缩比im.save('king-letter-ouo.jpg',quality = 20)

    运行结果,我们看看图片大小

    完美。

    我们在打开图片看看

    完美 二连击。

    注

    因为我们使用的图片120M,超过了178956970 pixels

    所以,我们需要使用imageFile的两个方法,限制因超大而报错:

    ImageFile.LOAD_TRUNCATED_IMAGES = TrueImage.MAX_IMAGE_PIXELS = None

    如果不限制,报错信息:

    PIL.Image.DecompressionBombError: Image size (206621200 pixels) exceeds limit of 178956970 pixels, could be decompression bomb DOS attack.

    2.2 thumbnail方式

    掌握了quality方式,

    我们再用PIL的 thumbnail方式进行图片压缩

    我们同样使用超大图片。

    这次用唐三的女神照片。

    代码展示

    # -*- coding: utf-8 -*-# @ auth : carl_DJ# @ time : 2022-01-12from PIL import Image,ImageFile#防止图片超过178956970 pixels 而报错ImageFile.LOAD_TRUNCATED_IMAGES = TrueImage.MAX_IMAGE_PIXELS = None#读取img文件img_file = './king-letter.jpg'im = Image.open(img_file)#获取原尺寸图片大小w,h = im.size#图片进行50%的压缩im.thumbnail  = ((w // 2, h // 2))#保存im.save('king-letter-oua.jpg')

    运行结果

    我们可以看到,thumbnail方式 虽然把图片压缩到50%,但是图片的大小并不会小太多。

    3、OpenCV模块

    除了PIL模块,还有OpenCV模块也可以压缩图片

    3.1 安装

    opencv模块需要安装

    老规矩,直接pip安装:

    pip install opencv-python

    其他方式安装:

    《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》

    《Python3:我低调的只用一行代码,就导入Python所有库!!》

    3.2 执行代码

    # -*- coding: utf-8 -*-# @ auth : carl_DJ# @ time : 2022-01-12from cv2 import cv2imgs = cv2.imread('./king.jpg')#图片缩放至原图的1/4resize_img = cv2.resize(imgs, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)#重写图片并保存cv2.imwrite('king-ouv.jpg', resize_img)

    运行结果

    原图

    压缩后图片

    以上是"如何使用Python实现图片压缩"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    图片 方式 模块 代码 结果 运行 原图 大小 utf-8 文件 篇文章 内容 女神 方法 照片 限制 普通 接下来 一行 不怎么 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 百单网互联网科技有限公司 互联网科技巨头监管 互联网与科技发展 互联网科技小额贷款 互联网 科技馆 来此购互联网科技有限公司 互联网软件和科技 互联网科技革命什么开始 移动互联网科技公司 宜昌元轩互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网科技人工智能实验室 天津腾达互联网科技有限公司 互联网科技和法律行业 深圳市罗太互联网科技有限公司 互联网科技的全部知识 合肥互联网科技公司公章图片 广州百诚互联网科技有限公司官网 互联网领先科技成果宣传视频 互联网科技公司起名 互联网核心科技是什么 无线互联网科技 互联网科技logo设计 互联网科技公司需要的职位 佛山市拉法互联网科技有限公司 上海创道互联网络科技有限公司 艺电能源互联网科技有限公司招聘 山东蛋芒互联网科技有限公司 平安好医生打造互联网科技医疗
    0