项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩

一:导入包

from PIL import Image

import os

二:获取图片文件的大小

def get_size(file):

# 获取文件大小:KB

size = os.path.getsize(file)

return size / 1024

三:拼接输出文件地址

def get_outfile(infile, outfile):

if outfile:

return outfile

dir, suffix = os.path.splitext(infile)

outfile = '{}-out{}'.format(dir, suffix)

return outfile

四:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值

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 = get_size(infile)

if o_size <= mb:

return infile

outfile = get_outfile(infile, outfile)

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)

五:修改图片尺寸,如果同时有修改尺寸和大小的需要,可以先修改尺寸,再压缩大小

#Python学习交流群:778463939

def resize_image(infile, outfile='', x_s=1376):

"""修改图片尺寸

:param infile: 图片源文件

:param outfile: 重设尺寸文件保存地址

:param x_s: 设置的宽度

:return:

"""

im = Image.open(infile)

x, y = im.size

y_s = int(y * x_s / x)

out = im.resize((x_s, y_s), Image.ANTIALIAS)

outfile = get_outfile(infile, outfile)

out.save(outfile)

if __name__ == '__main__':

compress_image(r'D:\learn\space.jpg')

resize_image(r'D:\learn\space.jpg')

以上就是python 实现图片批量压缩的示例的详细内容,更多关于python 图片批量压缩的资料请关注我们其它相关文章!

本文标题: python 实现图片批量压缩的示例

本文地址: http://www.cppcns.com/jiaoben/python/370302.html

python jpg压缩_python 实现图片批量压缩的示例相关推荐

  1. 如何使用python批量压缩图片_python 实现图片批量压缩的示例

    项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩 一:导入包 from PIL import Image import os 二:获取图片文件的大小 def get_si ...

  2. 图片批量压缩方法及步骤

    图片批量压缩方法及步骤!平常我们会将手机拍摄的照片传输到电脑里保存,时间久了后电脑中会有大量的图片,这些图片大都是1M-2M的体积大小,这些图片会占用大量的电脑磁盘空间,可能会导致电脑变得很卡等现象. ...

  3. python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式

    背景: 待压缩的图片大小有几十KB到近10M大小不等,且绝大部分图片为JPG格式.这些待压缩图片放在picture文件夹下 以及picture文件夹下的子文件夹中 现需要将picture文件夹下这些图 ...

  4. Python图片批量压缩到指定大小并将JPG转为PNG格式

    背景: 待压缩的图片大小有几十KB到近10M大小不等,且绝大部分图片为JPG格式.这些待压缩图片放在picture文件夹下 以及picture文件夹下的子文件夹中 现需要将picture文件夹下这些图 ...

  5. 快速批量压缩照片到指定大小工具,照片图片批量压缩实现方法,批量压缩工具

    在工作中,会遇到在某些系统要上传照片,但是对于上传的照片大小有限制,比如限制大小不能超过1MB等,而外业拍摄的照片往往会超过限制的大小,那么这时就需要对照片进行压缩.但是外业照片数据巨大,人工逐张操作 ...

  6. 如何将图片批量压缩?全面盘点这几种小方法

    写在前面:现在的人们都喜欢用自己手机里的相机来记录自己生活中的点滴美好,而拍照成为人们记录自己生活的最常用的一个方式,这样当时间过去也会记得自己之前曾去过哪些地方,可是照片多了之后也很烦恼,图片太多, ...

  7. 图片批量压缩变小的办法

    手机拍的照片往往尺寸过大,或者时间长了我们需要对电脑的图片进行整理,很多情况下需要对大量图片进行压缩变小.图片批量压缩变小的办法,不知道大家有没有什么好的分享.今天我就分享我的方法,我使用公司安装的的 ...

  8. 潇洒郎:吐血经验——用python 结合好压软件 实现批量压缩文件或文件夹、并同时添加压缩密码方法———因为zipfile模块或者其他模块无法实现为文件添加压缩密码

    python 结合好压软件 实现批量压缩文件或文件夹.并同时添加压缩密码 先说说写本博客的缘由,也是吐血的经验教训: 由于一些原因需要为大量文件资料添加压缩密码,而好压软件只能实现单个文件压缩,不能进 ...

  9. java 异想_异想家博客图片批量压缩程序

    为了方便给自己的博客配图,用Golang写了一个脚本处理,现分享出来,有需要的朋友也可以参考修改使用. 压缩规则 1.图片都等比例压缩,不破坏长宽比. 2.如果是横屏图片,压缩到宽度为1280,高度适 ...

最新文章

  1. Python自动化办公系列之Python操作PDF
  2. 安装旧版本插件_iOS 应用降级插件,支持任意版本升降
  3. SAP Retail Assortment List - 分类列表
  4. 一文看透汽车芯片!巨头布局技术路线全解密【附下载】| 智东西内参
  5. HTTPHandler有什么作用
  6. 前端学习(2618):vue插槽--默认插槽
  7. 实例16:python
  8. input失去焦点验证格式_vue2多文本框的表单校验(3)-失去焦点触发校验
  9. 90后程序员代码漏洞更多?
  10. [计算机系统] - 链接
  11. [Linux] 头文件加载顺序
  12. 比较两个文本中数据不同的行
  13. python 分位数 位置_Python解释数学系列——分位数Quantile
  14. maven 如何引入不同版本_React中不同webpack版本如何配置less
  15. AACL2022会议征稿
  16. e480win7显卡驱动_e480安装了windows7显卡驱动装不上
  17. 用Python写一个程序,解密游戏内抽奖的秘密
  18. CSS面试题整理汇总
  19. 比“5G有多快”更重要的,是5G将带来哪些改变
  20. Python面向对象,从农药到吃鸡 bilibili视频笔记

热门文章

  1. 2016 苹果全球开发者大会(WWDC)
  2. 《Java 2 实用教程》读书笔记(二)
  3. MOOG穆格伺服阀D661-4444C G60JOAA6VSX2HA
  4. MYSQL查询选修三门以上课程_SQL高级查询的练习题
  5. java导出各种PDF文件(图片、表格、字体)
  6. java 连接 teradata_java连接teradata
  7. oracle数据库恢复aul_AUL恢复数据案例
  8. 拆迁安置用房如何办理产权证
  9. 2012年第三届蓝桥杯试题(C/C++本科B组)
  10. 简介公开密钥算法和证书生成