基于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中的实现
May 04 Python
Django admin实现图书管理系统菜鸟级教程完整实例
Dec 12 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
softmax及python实现过程解析
Sep 30 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
python rsa-oaep加密的示例代码
Sep 23 Python
聊聊Python String型列表求最值的问题
Jan 18 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执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
php面向对象值单例模式
2016/05/03 PHP
PHP加密解密类实例代码
2016/07/20 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
JavaScript的Cookies
2008/01/16 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python实现发送邮件功能代码
2017/12/14 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
单位办理社保介绍信
2014/01/10 职场文书
全国道德模范事迹
2014/02/01 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
2015年党员承诺书
2015/01/21 职场文书
第一节英语课开场白
2015/06/01 职场文书
女性健康讲座主持词
2015/07/04 职场文书
爱国主义教育主题班会
2015/08/13 职场文书