Python批量处理图片大小尺寸方法详解
魂尾ac 人气:0前言
出发点,网上下了一批png,使用wxFormBuilder做软件工具栏的图标,原图做出来的效果
这么大的一个图标让笔者差点就笑岔气了
以前都是用工具改变图片的大小,这次想了下,开发的事情肯定用脚本搞定
所以决定写一个脚本让图片变成32x32,原图是124x128的,
简单讲解
本文使用Pillow(PIL),
安装:
pip install pillow
这个库有很多图片处理功能,修改图片大小仅是其中一种。不多说上操作
1、建目录
新增一个changePicSizeDemo的目录,
将需要改变的一个源文件放进目录下
新增一个Demo.py编写脚本
2、图片大小修改
#导入Image库 from PIL import Image #打开当前目录下 !.png 图片文件对象 old_pic = Image.open('!.png') #修改图片size为32*32,生成新图片对象 new_pic = old_pic.resize((32, 32), Image.ANTIALIAS) #保存新图片文件,保存到当前目录 new_pic.save('!01.png')
运行后,得到32*32的小图标,看下图,相比前面的图片可以清楚看见像素格子了。
批量修改图片Size
1、目录处理
在changePicSizeDemo目录下新增两个目录
SourcePics目录存入须改变Size的图片文件
CsavePics目录用来存放改完Size后的图片文件
2、图片批量修改Size完整代码
from PIL import Image import os # 获取当前py文件的根目录 basePath = os.path.dirname(os.path.abspath(__file__)) # 获取图片源目录 old_Path = os.path.join(basePath, 'SourcePics') # 获取图片改后保存目录 new_path = os.path.join(basePath, 'CsavePics') # os.walk遍历这个路径下的图片文件 raw_files = os.walk(old_Path) for root, dirs, files in raw_files: # 把遍历的根目录、子目录以及文件名展现出来 for file in files: # 把单个文件名提取出来,方便一个个处理 # 合并路径得到源图片的绝对路径 old_pic_path = os.path.join(root, file) # 打开当前目录下图片文件对象 old_pic = Image.open(old_pic_path) # 修改图片size为32*32,生成新图片对象 new_pic = old_pic.resize((32, 32), Image.ANTIALIAS) # 合并路径得到新图片的绝对路径 new_pic_path = os.path.join(new_path, file) #保存新图片文件到新目录 new_pic.save(new_pic_path)
运行
CsavePics目录下得到了一批32x32的图片
最后将改好的图片放到wxFormBuilder的做的工具里面去,舒服了。
图片Size修改分享完毕,希望多多点赞与收藏
加载全部内容