Python批量处理图片大小尺寸方法详解
作者:魂尾ac 发布时间:2021-12-11 23:12:07
标签:Python,批量,处理,图片
前言
出发点,网上下了一批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修改分享完毕,希望多多点赞与收藏
来源:https://blog.csdn.net/weixin_40331132/article/details/127721375
0
投稿
猜你喜欢
- Dean Edwards 最近有篇文章很精彩,忍不住在这里翻译下。-- Split --很多 Javascript 框架都提供了自定义事件(
- 引言这三个排序方法应对日常工作基本够用先说一下三者的区别sort, sorted 是用在 list 数据类型中的排序方法argsort 是用
- “'验证码'等于'流氓软件'”这句话本身存在逻辑问题,因为“验证码”并不是一个软件,而是软件里的一个功能。这
- PHP 5.0.0 和PHP 4.0.38 于2004年7月13日同时发布,这是一个值得我们PHP爱好者的一大喜讯。期盼已久的PHP5终于出
- 在document.form1.submit();后加document.body.innerHtml = "W
- 本文实例为大家分享了python+rsync精确同步指定格式文件的具体代码,供大家参考,具体内容如下# coding: utf-8#!/us
- 目标是想把在服务器上用pytorch训练好的模型转换为可以在移动端运行的tflite模型。最直接的思路是想把pytorch模型转换为tens
- 沟通的时候,一般我不主动说自己是做用户体验设计,也不说做以用户为中心的设计,包括UED, UCD。这种专业名词传达的太虚,你也许是名用户体验
- /* 小弟刚刚接触ORACLE存储过程,有一个问题向各位同行求教,小弟写了一个存储过程,其目的是接收一个参数作为表名,然后查询该表中的全部记
- 基本函数如下:/// <summary> /// 需要分页时使用,根据参数和ConditionExpress获取DataTabl
- 编写 models.py 文件from django.db import models# Create your models here.c
- 上下班打卡是程序员最讨厌的东西,更讨厌的是设置了连上指定wifi打卡。手机上有一些定时机器人之类的app,经过实际测试,全军覆没,没一个可以
- 内容摘要:当我们不想让某IP服务我们的网站时,我们就要写段程序来限制IP地址。asp中如何对ip进行过滤限制?本文介绍了一种方法,这个函数只
- 这里我不讨论 python 的一些有用的库或者框架,只从语言本身,最小支持的情况下谈论这门语言本身。语言的发展都是越来越接近Lisp,这也是
- 1.官网下载Pycharm community版如pycharm-community-2017.3.1.tar.gz。2. #解压tar.g
- str字符串s = '中文' # s: <type 'str'>s是个str对象,中
- 如何显示已在数据库编码了的相对应的记录?我做了一个歌曲库,在查询中使用了几个下拉菜单供选择条件用,如歌手的性别、区域、爱好等,由于选项太多,
- 目前网络上有许多图片验证码形式,那些没有生成图片的验证码的抗破解防御能力简直不堪一击;有人直接在网页源码里显示出具体的数字,然后要求访问者输
- 来源:奥索网 桌面中心(二)数据库写入作者:elong 一、以下是数据库的写入的html程序,你可以加入密码功能。把密码做成变量发入下面那个
- 通常,由于类别不均衡,需要使用weighted cross entropy loss平衡。def inverse_freq(label):