基于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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Python之批量创建文件的实例讲解
May 10 Python
python实现网站微信登录的示例代码
Sep 18 Python
关于numpy数组轴的使用详解
Dec 05 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
python利用faker库批量生成测试数据
Oct 15 Python
python 爬取豆瓣网页的示例
Apr 13 Python
详解Python类和对象内容
Jun 22 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
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
PHP 错误处理机制
2015/07/06 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
python实现画循环圆
2019/11/23 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
编写python代码实现简单抽奖器
2020/10/20 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
十佳标兵事迹材料
2014/08/18 职场文书
医院党员公开承诺书
2014/08/30 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle