Python 实现图片大小压缩

liftword3个月前 (03-03)技术文章25

起因

截图组件配合验证码使用优化建议

既然没人帮忙解决只能自己动手了

小白先直接献上代码

from PIL import Image

import os

def compress_image(infile, outfile=’’, mb=150, step=10, quality=80):

“”“不改变图片尺寸压缩到指定大小

:param infile: 压缩源文件

:param outfile: 压缩文件保存地址

:param mb: 压缩目标,KB

:param step: 每次调整的压缩比率

:param quality: 初始压缩比率

:return: 压缩文件地址,压缩文件大小

“””

o_size = os.path.getsize(infile)/1024

if o_size <= mb:

return infile

if not outfile:

dir, suffix = os.path.splitext(infile)

outfile = ‘{}-out{}’.format(dir, suffix)

while o_size > mb:

im = Image.open(infile)

im.save(outfile, quality=quality)

if quality - step < 0:

break

quality -= step

o_size = get_size(outfile)

return outfile, get_size(outfile)

调用函数执行

查看压缩效果

查看大小

压缩前

压缩后

当然我这里的选择的图片本来也不大,验证码组件最大识别 200K, 这里将 mb 参数调整到 200 就能解决问题了。

文章来源:艺赛旗RPA社区 掉进悬崖的小白

相关文章

20 天学 Python 文件操作:Day 8 压缩与解压文件

在日常开发中,压缩和解压文件是处理文件操作的常见需求。Python 提供了丰富的内置模块,比如 zipfile 和 shutil,让我们能够高效地压缩和解压文件。今天我们将学习如何使用这些模块进行操作...

20 天学 Python 文件操作:Day 16 文件压缩与解压

在日常工作中,我们经常需要对文件进行压缩和解压操作以减少存储空间或方便文件传输。今天,我们将学习如何使用 Python 进行文件的压缩与解压。1. 使用 zipfile 模块进行 ZIP 文件操作创建...

python压缩/解压gzip 大文件

最近处理线上日志,日志文件刚好是经过压缩的,且是gz后缀。自己便采用gzip库来处理。示例如下:创建gzip文件# -- coding: utf-8 -- import gzip """ 创建gzi...

Python打包成 exe,太大了该怎么解决?

有个刚毕业的小学妹问,Python打包成exe,太大了该怎么解决?首先要知道Python打包exe为什么这么大?我猜你一定是用PyInstaller打包exe的,PyInstaller特点是将乱七八糟...

用 Python 库 PySimpleGUI 制作自动化办公小软件

来源丨Python自动化办公社区链接https://blog.csdn.net/lys_828/article/details/11123856Python 在运维和办公自动化中扮演着重要的角色,P...