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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python中global与nonlocal比较
Nov 21 Python
python批量替换页眉页脚实例代码
Jan 22 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python实现批量注册网站用户的示例
Feb 22 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
Python如何在bool函数中取值
Sep 21 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
Python读取文件夹下的所有文件实例代码
Apr 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实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
网站上面有这种切换效果
2006/06/26 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
python自动化报告的输出用例详解
2018/05/30 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
中海讯通笔试题
2015/09/15 面试题
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
linux面试题参考答案(5)
2016/11/05 面试题
协议书怎么写
2014/04/21 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
初中毕业感言300字
2015/07/31 职场文书