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函数缺省值与引用学习笔记分享
Feb 10 Python
使用python 获取进程pid号的方法
Mar 10 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
django admin后台添加导出excel功能示例代码
May 15 Python
Python OpenCV实现视频分帧
Jun 01 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
pytorch fine-tune 预训练的模型操作
Jun 03 Python
Python 数据可视化之Seaborn详解
Nov 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python文件处理
2016/02/29 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
办公室文员工作职责
2014/01/31 职场文书
副厂长岗位职责
2014/02/02 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
产品质量承诺书范文
2014/03/27 职场文书
工作失误检讨书
2015/01/26 职场文书
小学教师教育随笔
2015/08/14 职场文书