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中使用第三方模块的教程
Apr 27 Python
Python程序中设置HTTP代理
Nov 06 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
python如何求100以内的素数
May 27 Python
python类共享变量操作
Sep 03 Python
基于Python爬取素材网站音频文件
Oct 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
自动跳转中英文页面
2006/10/09 PHP
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
JS取得绝对路径的实现代码
2015/01/16 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
javascript中的面向对象
2017/03/30 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
医院工作检讨书范文
2014/02/10 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
世界十大狙击步枪排行榜
2022/03/20 杂记