python生成指定尺寸缩略图的示例


Posted in Python onMay 07, 2014

python生成指定尺寸的缩略图

def MakeThumb(path, sizes=(75, 32, 16)):
    """
    缩略图生成程序 by Neil Chen
    sizes 参数传递要生成的尺寸,可以生成多种尺寸
    """
    base, ext = os.path.splitext(path)
    try:
        im = Image.open(path)
    except IOError:
        return
    mode = im.mode
    if mode not in ('L', 'RGB'):
        if mode == 'RGBA':
            # 透明图片需要加白色底
            alpha = im.split()[3]
            bgmask = alpha.point(lambda x: 255-x)
            im = im.convert('RGB')
            # paste(color, box, mask)
            im.paste((255,255,255), None, bgmask)
        else:
            im = im.convert('RGB')
    width, height = im.size
    if width == height:
        region = im
    else:
        if width > height:
            delta = (width - height)/2
            box = (delta, 0, delta+height, height)
        else:
            delta = (height - width)/2
            box = (0, delta, width, delta+width)
        region = im.crop(box)
    for size in sizes:
        filename = base + "_" + "%sx%s" % (str(size), str(size)) + ".jpg"
        thumb = region.resize((size,size), Image.ANTIALIAS)
        thumb.save(filename, quality=100) # 默认 JPEG 保存质量是 75, 不太清楚。可选值(0~100)
Python 相关文章推荐
Python正则表达式常用函数总结
Jun 24 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
Python requests设置代理的方法步骤
Feb 23 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
Python函数对象与闭包函数
Apr 13 Python
python读取浮点数和读取文本文件示例
May 06 #Python
python创建线程示例
May 06 #Python
Python Web服务器Tornado使用小结
May 06 #Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 #Python
Python Web开发模板引擎优缺点总结
May 06 #Python
windows系统中python使用rar命令压缩多个文件夹示例
May 06 #Python
Python中使用动态变量名的方法
May 06 #Python
You might like
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
谈谈PHP语法(4)
2006/10/09 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python数组过滤实现方法
2015/07/27 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
python tqdm库的使用
2020/11/30 Python
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
开学第一周值周总结
2015/07/16 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python