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解析xml成对应的html示例分享
Apr 02 Python
Python contextlib模块使用示例
Feb 18 Python
Python自动扫雷实现方法
Jul 25 Python
如何高效使用Python字典的方法详解
Aug 31 Python
python实现Windows电脑定时关机
Jun 20 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
Python socket处理client连接过程解析
Mar 18 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
Pygame Draw绘图函数的具体使用
Nov 17 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
js压缩利器
2007/02/20 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
javascript实现手动点赞效果
2019/04/09 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python 字符串操作方法大全
2014/03/11 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
Python partial函数原理及用法解析
2019/12/11 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python中安装django模块的方法
2020/03/12 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
HTML5标签小集
2011/08/02 HTML / CSS
进修护士自我鉴定
2013/10/14 职场文书
中专生的个人自我评价
2013/12/11 职场文书
开办大学饮食联盟创业计划书
2014/01/29 职场文书
校园安全演讲稿
2014/05/09 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书