python批量修改图片大小的方法


Posted in Python onJuly 24, 2018

本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下

引用的模块

from PIL import Image

Image的使用

def resize_image(img_path):
  try:
    mPath, ext = os.path.splitext(img_path)
    if astrcmp(ext, ".png") or astrcmp(ext, ".jpg"):
      img = Image.open(img_path)
      (width, height) = img.size

      if width != new_width:
        new_height = int(height * new_width / width)
        out = img.resize((new_width, new_height), Image.ANTIALIAS)
        new_file_name = '%s%s' % (mPath, ext)
        out.save(new_file_name, quality=100)
        Py_Log("图片尺寸修改为:" + str(new_width))
      else:
        Py_Log("图片尺寸正确,未修改")
    else:
      Py_Log("非图片格式")
  except Exception, e:
    print e

def printFile(dirPath):
  print "file: " + dirPath
  resize_image(dirPath)
  return True

引用

if __name__ == '__main__':
  path = "E:\pp\icon_setting.png"
  new_width = 50
  try:
    b = printFile(path)
    Py_Log("\r\n     **********\r\n" + "*********图片处理完毕*********" + "\r\n     **********\r\n")
  except:
    print "Unexpected error:", sys.exc_info()

上述是修改单一的图片,若要批量修改文件夹下的所有图片,则要使用循环,在上面基础添加 例如:

def BFS_Dir(dirPath, dirCallback=None, fileCallback=None):
  queue = []
  ret = []
  queue.append(dirPath);
  while len(queue) > 0:
    tmp = queue.pop(0)
    if os.path.isdir(tmp):
      ret.append(tmp)
      for item in os.listdir(tmp):
        queue.append(os.path.join(tmp, item))
      if dirCallback:
        dirCallback(tmp)
    elif os.path.isfile(tmp):
      ret.append(tmp)
      if fileCallback:
        fileCallback(tmp)
  return ret

第一个参数为图片的目录路径,第二个参数是(目录路劲的回掉方法),第三个参数是图片处理回掉方法

源代码参考:Python_Tool

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式匹配ip地址实例
Oct 09 Python
Python线程的两种编程方式
Apr 14 Python
python从入门到精通(DAY 3)
Dec 20 Python
Python程序中设置HTTP代理
Nov 06 Python
PyQt实现界面翻转切换效果
Apr 20 Python
解决python运行启动报错问题
Jun 01 Python
python如何建立全零数组
Jul 19 Python
Python Map 函数的使用
Aug 28 Python
python压包的概念及实例详解
Feb 17 Python
在Django中使用MQTT的方法
May 10 Python
python spilt()分隔字符串的实现示例
May 21 Python
Python OpenCV超详细讲解基本功能
Apr 02 Python
python 自动去除空行的实例
Jul 24 #Python
python读取图片并修改格式与大小的方法
Jul 24 #Python
Flask模拟实现CSRF攻击的方法
Jul 24 #Python
Python全排列操作实例分析
Jul 24 #Python
python保存网页图片到本地的方法
Jul 24 #Python
python中reader的next用法
Jul 24 #Python
使用Flask集成bootstrap的方法
Jul 24 #Python
You might like
php简单图像创建入门实例
2015/06/10 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
google地图的路线实现代码
2009/08/20 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
Python动态导入模块的方法实例分析
2018/06/28 Python
python用插值法绘制平滑曲线
2021/02/19 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Python多线程的退出控制实现
2020/08/10 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
天网工程实施方案
2014/03/26 职场文书
大学生就业意向书范文
2014/04/01 职场文书
商业融资计划书
2014/04/29 职场文书
英语教育专业自荐信
2014/05/29 职场文书
导游词之河北邯郸
2019/09/12 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android