基于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读取word文档的方法
May 09 Python
python实现将内容分行输出
Nov 05 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
flask入门之表单的实现
Jul 18 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
Python 处理文件的几种方式
Aug 23 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
django 外键创建注意事项说明
May 20 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
使用pandas模块实现数据的标准化操作
May 14 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
document.compatMode介绍
2009/05/21 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
基于python socketserver框架全面解析
2017/09/21 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python tkinter事件高级用法实例
2018/01/31 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
c语言常见笔试题总结
2016/09/05 面试题
旅游专业毕业生自荐书
2014/06/30 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python