使用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()
相关推荐
网易独家音乐人Mike Zhou3 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书3 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
小喵要摸鱼6 小时前
Python 神经网络项目常用语法
python
一念之坤7 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
wxl7812278 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
NoneCoder8 小时前
Python入门(12)--数据处理
开发语言·python
LKID体8 小时前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j
小尤笔记9 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo19 小时前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas