Python 实现图片大小压缩

liftword2个月前 (03-03)技术文章15

起因

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

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

小白先直接献上代码

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社区 掉进悬崖的小白

相关文章

最全RAR文件操作指南:如何用Python压缩、解压与筛选文件

引言:Python 对 .rar 文件进行压缩、解压以及筛选特定文件的操作代码封装一下import os import rarfile #todo 用于处理 RAR 文件 import zipfil...

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

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

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

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

使用 Python 压缩 PDF 或减小 PDF 文件大小的 5 种方法

在存储、共享和传输方面,处理大型 PDF 文件可能是一个真正的挑战。PDF 压缩提供了一种有效的解决方案来减小文件大小,使文档更易于管理并优化存储使用情况。压缩的 PDF 文件具有几个关键优势:降低存...

python散装笔记——131: 解压文件

为了提取或解压缩tarball(tar归档文件)、ZIP文件或gzip文件,Python分别提供了tarfile、zipfile和gzip模块。Python的tarfile模块提供了TarFile.e...

15《Python 办公自动化教程》文件压缩与解压缩

压缩包也是我们平时工作中经常要接触到的文件格式,压缩文件后缀名通常有 .zip、.rar、.7z 等等。Python 中也有专门用来操作压缩包文件的第三方模块 zipfile。听这个名字就知道是用来操...