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守护进程(daemon)代码实例
Mar 06 Python
python模拟鼠标拖动操作的方法
Mar 11 Python
python随机生成指定长度密码的方法
Apr 04 Python
Django中几种重定向方法
Apr 28 Python
python比较两个列表是否相等的方法
Jul 28 Python
Python实现的字典值比较功能示例
Jan 08 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
python多进程实现文件下载传输功能
Jul 28 Python
tensorflow 自定义损失函数示例代码
Feb 05 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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
提高PHP编程效率的方法
2013/11/07 PHP
php实现的用户查询类实例
2015/06/18 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
JS的replace方法详细介绍
2012/11/09 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python解析nginx日志文件
2015/05/11 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python requests指定出口ip的例子
2019/07/25 Python
Python数据正态性检验实现过程
2020/04/18 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
自考自我鉴定范文
2013/10/30 职场文书
家庭困难证明
2014/10/12 职场文书
教育实习指导教师评语
2014/12/31 职场文书
企业培训简报范文
2015/07/20 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers