在工作中有时候会遇到批量修改图片大小的工作,如果是比较少的图片文件手动即可修改,但是如果是大批量的图片文件,手动修改不仅费时费力,也有可能遗漏文件,这时候只需要开发一个python文件运行一下,大批量的图片文件几分钟内即可完成图片大小的修改,大大提升了工作效率和减少出错率。
那么到底该怎么使用Python程序开发使图片大小批量修改,修改图片的宽度,让高度自适应,或者修改图片的高度,让宽度自适应呢?
问题:一个文件中有大批量的jpg格式的图片文件,图片的大小都不一样,如何修改图片的宽度为500px,高度自适应,或者图片的高度为500px,宽度自适应?
考察知识点:文件路径的操作、图片修改操作
思路:先批量获取图片路径,然后获取图片的宽度和高度,以及宽高比(为了自适应图片),之后进行修改图片大小,最后做文件保存。
程序代码:
from pathlib import Path
from PIL import Image #导入路径模块和图片处理模块
p=Path(‘C:\\Users\\Administrator\\Desktop\\图片文件’) #这里放图片文件的路径,一定要注意文件路径格式
file=p.glob(‘*.jpg’) #获取文件路径内的所有jpg图片
for i in file: #for循环获取所有的图片路径
img=Image.open(i) #打开图片
w,h=img.size #获取图片的宽度和高度
scale=w/h #获取图片的宽高比,用于修改图片自适应
if scale<=1: #如果图片宽度大于高度,修改宽度为500,高度自适应
h=500
w=h*scale
else: #如果图片高度大于宽度,修改高度为500,宽度自适应
w=500
h=w/scale
newimg=img.resize((int(w),int(h))) #将修改好的宽和高赋值给一个新的图片
newimg.save(i) #保存新的文件,文件名与原文件名相同,路径相同
print(i) #打印新文件名,为了显示程序正在运行
程序运行结束即可修改文件夹内所有的jpg格式的图片,图片宽度或高度自适应,但是要注意的是,这样的修改是在原文件的基础上进行覆盖,修改完以后原文件将会被新文件全部覆盖,所以要及时做好原文件的备份。