基于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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
解析Python中while true的使用
Oct 13 Python
Python中的单继承与多继承实例分析
May 10 Python
超简单的Python HTTP服务
Jul 22 Python
python实现身份证实名认证的方法实例
Nov 08 Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
基于Python实现简单学生管理系统
Jul 24 Python
Python实现手势识别
Oct 21 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
Feb 20 Python
python使用torch随机初始化参数
Mar 22 Python
Python实现双向链表基本操作
May 25 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
PHP 编程请选择正确的文本编辑软件
2006/12/21 PHP
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python入门篇之对象类型
2014/10/17 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
对python中dict和json的区别详解
2018/12/18 Python
python通过链接抓取网站详解
2019/11/20 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
考博专家推荐信
2014/05/10 职场文书
企业宣传策划方案
2014/05/29 职场文书
煤矿安全生产标语
2014/06/06 职场文书
浅谈Python协程asyncio
2021/06/20 Python