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 列表(List)操作方法详解
Mar 11 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
Python3 中文文件读写方法
Jan 23 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
解决python多行注释引发缩进错误的问题
Aug 23 Python
Python实现小黑屋游戏的完整实例
Jan 06 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 字符串替换的方法
2012/01/10 PHP
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
jquery动态添加option示例
2013/12/30 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
Python线程中对join方法的运用的教程
2015/04/09 Python
python开发之函数定义实例分析
2015/11/12 Python
常见的python正则用法实例讲解
2016/06/21 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Python实现全排列的打印
2018/08/18 Python
python实现汉诺塔算法
2021/03/01 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
网络技术专业求职信
2014/02/18 职场文书
个人函授自我鉴定
2014/03/25 职场文书
师德师风自查总结
2014/10/14 职场文书
先进工作者推荐材料
2014/12/23 职场文书
电气工程师岗位职责
2015/02/12 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
清洁工工作总结
2015/08/11 职场文书