gpt4 book ai didi

python 实现图片批量压缩的示例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python 实现图片批量压缩的示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

一:导入包

?
1
2
from PIL import Image
import os

二:获取图片文件的大小

?
1
2
3
4
def get_size( file ):
   # 获取文件大小:KB
   size = os.path.getsize( file )
   return size / 1024

三:拼接输出文件地址

?
1
2
3
4
5
6
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可以修改到最合适的数值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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 图片批量压缩的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/xxpythonxx/p/13887931.html 。

最后此篇关于python 实现图片批量压缩的示例的文章就讲到这里了,如果你想了解更多关于python 实现图片批量压缩的示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com