基于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设置windows桌面壁纸的实现代码
Jan 28 Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
如何通过Django使用本地css/js文件
Jan 20 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python通过smpt发送邮件的方法
2015/04/30 Python
python获取当前日期和时间的方法
2015/04/30 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
用Python shell简化开发
2018/08/08 Python
python采集微信公众号文章
2018/12/20 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
python 读取串口数据的示例
2020/11/09 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
个人求职信范文分享
2014/01/06 职场文书
内科护士节演讲稿
2014/09/11 职场文书
交通事故委托书范本
2014/09/28 职场文书
法律服务所工作总结
2015/08/10 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python