基于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 数据加密代码
Dec 24 Python
Python常用正则表达式符号浅析
Aug 13 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
python爬虫使用cookie登录详解
Dec 27 Python
python中csv文件的若干读写方法小结
Jul 04 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python 字符串追加实例
Jul 20 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python 存取npy格式数据实例
Jul 01 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
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
PHP经典面试题集锦
2015/03/19 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
Python CSV模块使用实例
2015/04/09 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
python爬虫工具例举说明
2020/11/30 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
结婚典礼证婚词
2014/01/11 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
元旦联欢会感言
2014/03/04 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
护士个人年终总结
2015/02/13 职场文书
地雷战观后感
2015/06/09 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL