基于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中apply函数的用法实例教程
Jul 31 Python
github配置使用指南
Nov 18 Python
python常见的格式化输出小结
Dec 15 Python
关于Python中浮点数精度处理的技巧总结
Aug 10 Python
Python语言描述连续子数组的最大和
Jan 04 Python
Python之读取TXT文件的方法小结
Apr 27 Python
python解析含有重复key的json方法
Jan 22 Python
python实现邮件自动发送
Aug 10 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 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
PHP图片上传类带图片显示
2006/11/25 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
js代码实现微博导航栏
2015/07/30 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python中请不要再用re.compile了
2019/06/30 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
django的ORM操作 增加和查询
2019/07/26 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
初中优秀班集体申报材料
2014/05/01 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
初中政治教学反思
2016/02/23 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
Mysql案例刨析事务隔离级别
2021/09/25 MySQL