使用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()
相关推荐
过期动态6 分钟前
详解Python面向对象程序设计
开发语言·python·pycharm·django
兜里有糖请分享35 分钟前
Python中序列化/反序列化JSON格式的数据
爬虫·python
萧鼎1 小时前
Python中的TensorFlow与Keras:深度学习模型构建与训练
python·深度学习·tensorflow
阿乾之铭2 小时前
通过Django 与 PostgreSQL 进行WEB开发详细流程
python·postgresql·django
疯一样的码农2 小时前
Python 多线程
开发语言·python
chusheng18402 小时前
Python 爬取大量数据如何并发抓取与性能优化
开发语言·python·性能优化
计算机学姐2 小时前
基于Python的影院电影购票系统
开发语言·vue.js·后端·python·mysql·pycharm·pip
春天的菠菜2 小时前
【django】Django REST Framework (DRF) 项目中实现 JWT
后端·python·django·jwt
Learning改变世界2 小时前
Python快速安装软件包到环境的方案
开发语言·python
weixin_543662863 小时前
BERT的中文问答系统28
人工智能·python·bert