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实现的检测web服务器健康状况的小程序
Sep 17 Python
使用IPython来操作Docker容器的入门指引
Apr 08 Python
Python3.2中Print函数用法实例详解
May 19 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
Python socket非阻塞模块应用示例
Sep 12 Python
利用Python计算KS的实例详解
Mar 03 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
python dict乱码如何解决
Jun 07 Python
Python实现验证码识别
Jun 15 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python中时间模块的基本使用教程
2019/05/14 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
公司晚会主持词
2014/03/22 职场文书
安全施工标语
2014/06/07 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
公共场所禁烟标语
2014/06/25 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
慰问信格式规范
2015/03/23 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
MySQL 如何限制一张表的记录数
2021/09/14 MySQL