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 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
python自动化测试之连接几组测试包实例
Sep 28 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python中随机函数random用法实例
Apr 30 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
Python语言进阶知识点总结
May 28 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Python3运算符常见用法分析
Feb 14 Python
浅谈Python协程
Jun 17 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
python小程序之飘落的银杏
Apr 17 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的库,结果发现很多东西
2006/12/31 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP return语句的另一个作用
2014/07/30 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP实现计算器小功能
2020/08/28 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
大学四年个人的自我评价
2014/02/26 职场文书
个人事迹材料范文
2014/12/29 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS