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模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
python Pygame的具体使用讲解
Nov 03 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
Python面向对象中类(class)的简单理解与用法分析
Feb 21 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
Softmax函数原理及Python实现过程解析
May 22 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
java字符串格式化输出实例讲解
Jan 06 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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/03 新手入门
PHP学习 运算符与运算符优先级
2008/06/15 PHP
基于pear auth实现登录验证
2010/02/26 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python版微信红包分配算法
2015/05/04 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
Python实现不规则图形填充的思路
2020/02/02 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
新东网科技Java笔试题
2012/07/13 面试题
财务主管的岗位职责
2013/12/30 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
小孩不笨观后感
2015/06/03 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书