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


猜你喜欢
- 情境还原: 公司一项目新上线,刚上线的第2天,在后台发现数据库服务器与IIS服务器的网络IO出现瓶颈,1GB的网络带宽,占用了70%-100
- 前言首先线程和线程池不管在哪个语言里面,理论都是通用的。对于开发来说,解决高并发问题离不开对多个线程处理。我们先从线程到线程池,从每个线程的
- 1. 用Dreamweaver 4.0制作闪动的Flash按钮选择菜单Insert→Interactive Images→Flash But
- element换肤所有主题色和基础色均可自主配置1.element-ui官方提供的动态切换主题方法换肤 但此方法只可修改$&ndas
- Symfony是一个强大的基于PHP的Web开发框架,在这里我们用十分钟的时间来做一个简单的增删改查的程序, 任何不熟悉Symfony的人都
- PyMySQL介绍PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb
- 1 InnoDB页的概念InnoDB是一个将表中的数据存储在磁盘上的存储引擎,即使我们关闭并重启服务器,数据还是存在。而真正处理数据的过程发
- 近期线上出现一个bug,研发的小伙伴把测试环境的地址写死到代码中,在上线前忘记修改,导致线上发布的代码中使用了测试环境地址。开发过程中虽然有
- 今天来分享一个“高大上”的技术——使用python编写一个可以用微信远程控制电脑的程序!先来分析一下控制的具体流程:我们使用微信给特定的邮箱
- import上一级目录的模块python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修
- Vue 中使用v-for语句抛出错误的解决方案今天在维护以前的项目的时候遇见了下面的报错情况,开始我以为是因为jQuery和Vue冲突了,所
- 使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法
- 参数解释DataFrame.sort_values(by, &nbs
- 本文实例讲述了ASP.NET数据库操作类。分享给大家供大家参考,具体如下:using System;using System.Data;us
- redis-pyredis-py是Python操作Redis的第三方库,它提供了与Redis服务器交互的API。GitHub地址:https
- <html><head><title>遍历表格</title><script lang
- 一、基础知识1、MySQL-python的安装下载,然后 pip install 安装包2、python编写通用数据库程序的API规范(1)
- 如下所示:result = result.T.sort(['confidence','support'],
- python 连接数据库操作, 方法如下:在本机的mysql 数据库中有一个名为yao的库,其中有一个名为user的表,表中的内容如图下面,
- 递归和尾递归简单的说,递归就是函数自己调用自己,它做为一种算法在程序设计语言中广泛应用。其核心思想是把一个大型复杂的问题层层转化为一个与原问