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调用C# Com dll组件实战教程
Oct 12 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
Python File(文件) 方法整理
Feb 18 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
Python类的动态绑定实现原理
Mar 21 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
PyCharm配置anaconda环境的步骤详解
Jul 31 Python
详解anaconda安装步骤
Nov 23 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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Python使用python-docx读写word文档
2019/08/26 Python
如何使用python进行pdf文件分割
2019/11/11 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
外语系毕业生找工作的求职信
2013/11/28 职场文书
就业自荐信
2013/12/04 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
万里长城导游词
2015/01/30 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技