基于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 相关文章推荐
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
使用python 和 lint 删除项目无用资源的方法
Dec 20 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
python matplotlib折线图样式实现过程
Nov 04 Python
python多进程并发demo实例解析
Dec 13 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
Python实现七个基本算法的实例代码
Oct 08 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
Python list列表删除元素的4种方法
Nov 01 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的性能
2013/10/30 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
python写入xml文件的方法
2015/05/08 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
Python循环结构的应用场景详解
2019/07/11 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
python实现实时视频流播放代码实例
2020/01/11 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
班会关于环保演讲稿
2013/12/29 职场文书
人事专员工作职责
2014/02/22 职场文书
供货协议书范本
2014/04/22 职场文书
产品设计开发计划书
2014/05/07 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
2015年城市管理工作总结
2015/05/23 职场文书