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的socket模块源码中的一些实现要点分析
Jun 06 Python
Python 搭建Web站点之Web服务器与Web框架
Nov 06 Python
Python模拟三级菜单效果
Sep 11 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
Python使用numpy实现BP神经网络
Mar 10 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python实现对csv文件的列的内容读取
Jul 04 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
Python子类继承父类构造函数详解
Feb 19 Python
Python中@property的理解和使用示例
Jun 11 Python
利用Python校准本地时间的方法教程
Oct 31 Python
Python -m参数原理及使用方法解析
Aug 21 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
php实现数字补零的方法总结
2018/09/12 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
javascript+css实现进度条效果
2020/03/25 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
Python 解析XML文件
2009/04/15 Python
python在文本开头插入一行的实例
2018/05/02 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
机械制造专业毕业生求职信
2014/03/02 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
初中差生评语
2014/12/29 职场文书
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server