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 相关文章推荐
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
VSCode下好用的Python插件及配置
Apr 06 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
python3实现多线程聊天室
Dec 12 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python将图片转base64,实现前端显示
Jan 09 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
Python如何实现机器人聊天
Sep 10 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 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 FPDF类库应用实现代码
2009/03/20 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
应届生妇产科护士求职信
2013/10/27 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
中秋客户感谢信
2015/01/22 职场文书
硕士论文致谢范文
2015/05/14 职场文书
2016新年问候语大全
2015/11/11 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
Python中json.dumps()函数的使用解析
2021/05/17 Python
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL