一文教会你使用Python批量缩放图片

 更新时间:2022年02月20日 11:55:05   作者:肥学  
最近处理一些规格不一的照片,需要修改成指定尺寸便于打印,下面这篇文章主要给大家介绍了关于使用Python批量缩放图片的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

导读

为了解决图片被改变大小后,比例保持不变(这样就不会变形了)

图片需要压缩,避免填图后的word文件太大通过Image模块中的resize函数,就能给解决如上问题。我们还是先按“修改时间”顺序获取图片文件夹下的所有图片的完整路径

实际演示阶段

我们需要做的事情就是将图一变为图二 图一:

图二:

进行等比例缩小。

#将图片按修改时间排序(这样才能与图片的描述一致),将路径存入列表,以便后面逐个插入图片时调用
import  os
path = "pictures"
list_p = [path+"\\"+i for i in os.listdir(path)] #获取图片的文件名,并拼接完整路径
list_p.sort(key=lambda path: os.path.getmtime(path)) #将列表中的文件按其修改时间排序,os.path.getmtime() 函数是获取文件最后修改时间
list_p里面存放的就是该文件夹下的所有图片路径
'pictures\\z.jpg',
 'pictures\\x.jpg',
 'pictures\\w.jpg',
 'pictures\\y.jpg',
 'pictures\\orange-flowers-2471898.jpg',
 'pictures\\lime-631389.jpg',
 'pictures\\v.jpg',

然后导入Image模块。for循环遍历所有图片的路径,然后读取图片尺寸,x对应宽度,y对应高度。这里的单位是像素。压缩图片的关键参数是压缩后的标准宽度x_s,我们Word模板中放置图片的单元格宽度为6.25厘米。压缩后的图片分辨率是96,像素为230的时候,对应长度是6.1厘米。以上换算可参考链接www.gaitubao.com/tools/pixel… 。但是按230像素的宽度压缩后,自动填充到Word文档中后,图片宽度变成了8厘米,已经超过单元格的宽度了。通过调试,最终将标准宽度设定为165像素,填入word中后,宽度是5.82厘米,比较适合单元格宽度。这个差异可能是换算的不精确导致。确定好标准宽度x_s后,高度y_s按照标准宽度乘上原始高宽比来确定,这样就是保持比例压缩,不会导致图片变形。压缩resize后,再保存到新的文件夹。

#按比例缩小图片尺寸
from PIL import Image
for infile in list_p:
    im = Image.open(infile)
    (x,y) = im.size #读取图片尺寸(像素)
    x_s = 165 #定义缩小后的标准宽度 
    y_s = int(y * x_s / x) #基于标准宽度计算缩小后的高度
    out = im.resize((x_s,y_s),Image.ANTIALIAS) #改变尺寸,保持图片高品质
    out.save('pictures_new\\{}'.format(infile.split("\\")[-1]))

就这样简单的几步我们就得到了想要的结果把图片压缩成了:

压缩前:

结果:

详细介绍该库

上面的介绍是不是很简单不过它只是PIL的一个功能下面我们详细介绍一下。

Python Imaging Library ( PIL ) 给 Python 增加了图像处理能力。

这个库提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。

让我们看看这个库的几种可能用法:

1· 图像存储

PIL 设计用于图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等等。现在的版本可以验证和读取大量的图片格式。写入有意设计为只能写入常用的文件格式。

2·图像显示 现在的版本包含了 Tk PhotoImage 和 BitmapImage 接口, 以及 Windows DIB interface,这有助于在 Windows 下使用。为了方便测试,还提供了 show() 方法,可以保存图像到磁盘并显示。

3·图像处理 这个库包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。这个库还支持更改图像大小、旋转、自由变换。有一个直方图方法允许你统计图像,这可以用于对比度增强和全局统计分析。

小面我贴一下文档的一些入门介绍:

贴文档做翻译的事情我就不做了大家可以自己去看看。

文档链接:传送门

总结

到此这篇关于使用Python批量缩放图片的文章就介绍到这了,更多相关Python批量缩放图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python如何截图保存的三种方法(小结)

    Python如何截图保存的三种方法(小结)

    这篇文章主要介绍了Python如何截图保存的三种方法(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python二维码操作:对QRCode和MyQR入门详解

    python二维码操作:对QRCode和MyQR入门详解

    今天小编就为大家分享一篇python二维码操作:对QRCode和MyQR入门详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python虚拟机字节码教程之控制流实现详解

    Python虚拟机字节码教程之控制流实现详解

    在本篇文章当中主要给大家分析 python 当中与控制流有关的字节码,通过对这部分字节码的了解,我们可以更加深入了解 python 字节码的执行过程和控制流实现原理
    2023-04-04
  • python ImageDraw类实现几何图形的绘制与文字的绘制

    python ImageDraw类实现几何图形的绘制与文字的绘制

    这篇文章主要介绍了python ImageDraw类实现几何图形的绘制与文字的绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python中输出ASCII大文字、艺术字、字符字小技巧

    Python中输出ASCII大文字、艺术字、字符字小技巧

    这篇文章主要介绍了Python中输出ASCII大文字、艺术字、字符字小技巧,本文首先给出了ASCII大文字、艺术字、字符字的图片效果,然后给出了Python中的实现方法,需要的朋友可以参考下
    2015-04-04
  • Python类的高级函数详解

    Python类的高级函数详解

    这篇文章主要介绍了Python类的高级函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • pycharm 如何查看某一函数源码的快捷键

    pycharm 如何查看某一函数源码的快捷键

    这篇文章主要介绍了在pycharm中实现查看某一函数源码的快捷键,具有很好的参考价值,希望能给大家做个参考,如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python对批量WAV音频进行等长分割的方法实现

    python对批量WAV音频进行等长分割的方法实现

    这篇文章主要介绍了python对批量WAV音频进行等长分割的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python利用keyboard模块实现键盘记录操作

    Python利用keyboard模块实现键盘记录操作

    模拟键盘操作执行自动化任务,我们常用的有pyautowin等自动化操作模块。今天介绍的这个模块叫做keyboard,它是纯Python原生开发,编译时完全不需要依赖C语言模块。一行命令就能完成安装,非常方便,需要的可以了解一下
    2022-10-10
  • 调用其他python脚本文件里面的类和方法过程解析

    调用其他python脚本文件里面的类和方法过程解析

    这篇文章主要介绍了调用其他python脚本文件里面的类和方法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论