当前位置: 首页 > news >正文

python压缩图片的代码

从网上复制的,不知道对不对 

def compress_image(infile, outfile='', mb=1500, step=10, quality=80):"""不改变图片尺寸压缩到指定大小:param infile: 压缩源文件:param outfile: 压缩文件保存地址:param mb: 压缩目标,KB:param step: 每次调整的压缩比率:param quality: 初始压缩比率:return: 压缩文件地址,压缩文件大小"""o_size = os.path.getsize(file)/1024if o_size <= mb:return infileoutfile = get_outfile(infile, outfile)while o_size > mb:im = Image.open(infile)im.save(outfile, quality=quality)if quality - step < 0:breakquality -= stepo_size = get_size(outfile)return outfile, get_size(outfile)

我自己写的,没有用循环写,但是感这样也是挺不错的。

#by czl
#date 2024年9月12日#Imag python中用于图片处理的库
from PIL import Image#os 通用的,基本的操作系统交互功能
import osfile_in = r"D:\桌面\test\1.png"#图片的地址,如d:\sb\1.JPGquality = 50#压缩的百分比,50不太明显,30比较明显
path, suffix = os.path.splitext(file_in)#分割输入的路径,格式分别给path, suffix
file_out = "{}_{}{}".format(path, quality, ".jpg")#设置图片的输出路径,质量,格式
#关于转换为.jpg输出是因为png是一种无损压缩,这个库对他没有作用
#如果原本的格式就是jpg,可以这样写
# file_out = "{}_{}{}".format(path, quality, suffix)img = Image.open(file_in)#打开图片
img.save(file_out, quality=quality)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Spring搭建SpringMvc框架
  • 网络通信开课作业c++
  • 【Go】Go语言中的数组基本语法与应用实战
  • 写作神器!推荐4款AI免费的写论文的文献网站
  • redisController工具类
  • 动态内存管理之malloc,free,calloc和realloc函数
  • Flip动画的实现示例demo
  • mysql的zip解压缩版安装
  • 常见的限流算法
  • hnust 湖科大 毕业实习常见问题30问(2021 年7月,V0.9)
  • django orm增删改查操作
  • 从零到一:构建你的第一个AI项目(实战教程)
  • 【算法】差分思想:强大的算法技巧
  • Parallels Desktop 20 for Mac中文版发布了?会哪些新功能
  • uniapp 做一个查看图片的组件,图片可缩放移动
  • 《深入 React 技术栈》
  • 【comparator, comparable】小总结
  • express如何解决request entity too large问题
  • Javascript 原型链
  • oldjun 检测网站的经验
  • Swift 中的尾递归和蹦床
  • vue-cli在webpack的配置文件探究
  • Yeoman_Bower_Grunt
  • 开源SQL-on-Hadoop系统一览
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端技术周刊 2019-02-11 Serverless
  • 收藏好这篇,别再只说“数据劫持”了
  • 我感觉这是史上最牛的防sql注入方法类
  • 项目管理碎碎念系列之一:干系人管理
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 如何正确理解,内页权重高于首页?
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​Spring Boot 分片上传文件
  • ​ubuntu下安装kvm虚拟机
  • ​力扣解法汇总946-验证栈序列
  • #laravel 通过手动安装依赖PHPExcel#
  • $.ajax中的eval及dataType
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (web自动化测试+python)1
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十)T检验-第一部分
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)可以带来幸福的一本书
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • ... 是什么 ?... 有什么用处?
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net CF下精确的计时器
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET技术成长路线架构图
  • .net开发日常笔记(持续更新)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)