基于Python批量生成指定尺寸缩略图代码实例


Posted in Python onNovember 20, 2019

这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近我们商城上架的应用越来越丰富了。但在应用上传的过程中遇到这样的一个问题:每一个上架的应用需要配置一个应用封面图片,并且封面的图片大小有指定的范围:300*175。而 我们制作完的图片一般都会大于这个尺寸。所以每次手动调整大小,又让我产生了偷懒的想法,想法有了那就开始行动吧。

代码

import requests as req
from PIL import Image
from io import BytesIO


def make_thumb(url, sizes=(300, 175)):
"""
生成指定尺寸缩略图
:param path: 图像路径
:param sizes: 指定尺寸
:return: 无返回,直接保存图片
"""
response = req.get(path)
im = Image.open(BytesIO(response.content))
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')
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:
# h*h
delta = (width - height) / 2
box = (delta, 0, delta + height, height)
else:
# w*w
delta = (height - width) / 2
box = (0, delta, width, delta + width)
region = im.crop(box)

# resize
thumb = region.resize((sizes[0], sizes[1]), Image.ANTIALIAS)
#保存图片
filename = url.split('/')[-1]
name, ext = filename.split('.')
savename = name + str(sizes[0]) + '_' + str(sizes[1]) + '.' + ext
thumb.save(savename, quality=100)


path = r'C:\Users\HP\Desktop\luckylttory.png'
make_thumb(path)

结果展示

原图:

基于Python批量生成指定尺寸缩略图代码实例

结果图:

基于Python批量生成指定尺寸缩略图代码实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用稀疏矩阵节省内存实例
Jun 27 Python
python网络编程之文件下载实例分析
May 20 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
Python中类的初始化特殊方法
Dec 01 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
Django实战之用户认证(初始配置)
Jul 16 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
Python 如何提高元组的可读性
Aug 26 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
Python实现上下文管理器的方法
Aug 07 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 #Python
利用python实现AR教程
Nov 20 #Python
使用python实现画AR模型时序图
Nov 20 #Python
Python笔记之工厂模式
Nov 20 #Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 #Python
将python2.7添加进64位系统的注册表方式
Nov 20 #Python
10个Python面试常问的问题(小结)
Nov 20 #Python
You might like
无限级别菜单的实现
2006/10/09 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
jQuery参数列表集合
2011/04/06 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python爬虫中多线程的使用详解
2019/09/23 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
教育专业个人求职信
2013/12/02 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers