使用pillow压缩图片存储大小

1.根据quality压缩图片改变图片大小

python 复制代码
'''
pip install pillow
'''
from PIL import Image
from io import BytesIO


with open('1.jpg', 'rb') as f:
    binPicFileObj = f.read()

# binPicFileObj 为字节串
# 将对象作为Image.open参数,象必须实现read()、seek()和tell()方法,并以二进制模式打开。
# BytesIO 被用来将读取的字节数据封装成一个类文件对象,实现了seek()、read()、write()等操作
img = Image.open(BytesIO(binPicFileObj ))
# quality值1-100决定压缩程度
# 不会改变图片分辨率即尺寸
img.save("2.jpg",quality=60)

#-----------------------------#
# # 也可以直接传入文件路径
# img = Image.open('1.jpg')
# img.save("2.jpg",quality=60)

减小到189KB

Note:

使用rb模式打开的文件返回的对象f,f.read() 方法返回的是一个字节串(bytes 对象),原封不动将文件二进制数据一个一个字节读入.

2.改变分辨率即图像尺寸

python 复制代码
from PIL import Image
from io import BytesIO

with open('1.jpg', 'rb') as f:
    p = f.read()

    
img = Image.open(BytesIO(p))
print(img.size)
# resize接受一个元组参数
imgn = img.resize((960,600))
imgn.save("2.jpg")
imgn = Image.open("2.jpg")
print(imgn.size)


imgn.close()
相关推荐
凌不了云13 分钟前
windows环境下安装python第三方包
开发语言·python
大熊程序猿13 分钟前
python 读取excel数据存储到mysql
数据库·python·mysql
生椰拿铁You16 分钟前
Python
python
鸽芷咕19 分钟前
【Python报错已解决】python setup.py bdist_wheel did not run successfully.
开发语言·python·机器学习·bug
清纯世纪1 小时前
基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)
开发语言·python·深度学习
孤华暗香1 小时前
Python快速入门 —— 第三节:类与对象
开发语言·python
didiplus1 小时前
【趣学Python算法100例】百钱百鸡
python·算法·百钱百鸡
pzx_0011 小时前
【内积】内积计算公式及物理意义
数据结构·python·opencv·算法·线性回归
一丝晨光1 小时前
逻辑运算符
java·c++·python·kotlin·c#·c·逻辑运算符
ForRunner1231 小时前
使用 Python 高分解决 reCAPTCHA v3 的指南
数据库·python·microsoft