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比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
django静态文件加载的方法
May 20 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
ipython和python区别详解
Jun 26 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
python定义类的简单用法
Jul 24 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 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
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
PHP实现计算器小功能
2020/08/28 PHP
jQuery的三种$()
2009/12/30 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
在django中自定义字段Field详解
2019/12/03 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Python实现自动整理文件的脚本
2020/12/17 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
应届生自我鉴定
2013/12/11 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
十佳护士获奖感言
2014/02/18 职场文书
小平您好观后感
2015/06/09 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL