基于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多线程抓取天涯帖子内容示例
Apr 03 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python图算法实例分析
Aug 13 Python
Python排序算法实例代码
Aug 10 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
用python处理MS Word的实例讲解
May 08 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
Python列表(List)知识点总结
Feb 18 Python
python ddt数据驱动最简实例代码
Feb 22 Python
Python实现word2Vec model过程解析
Dec 16 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
python 实现弹球游戏的示例代码
Nov 17 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
由面试题加深对Django的认识理解
2019/07/19 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
python实现滑雪者小游戏
2020/02/22 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
课题研究阶段性总结
2015/08/13 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
关于python类SortedList详解
2021/09/04 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript