基于Python批量生成指定尺寸缩略图代码实例

作者:艺赛旗RPA社区 时间:2021-12-15 14:58:48 

这篇文章主要介绍了基于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批量生成指定尺寸缩略图代码实例

来源:https://www.cnblogs.com/isearch/p/11888034.html

标签:python,批量,生成,缩略,图
0
投稿

猜你喜欢

  • python中struct模块之字节型数据的处理方法

    2021-09-27 12:38:00
  • Win10搭建Pyspark2.4.4+Pycharm开发环境的图文教程(亲测)

    2021-03-21 02:07:59
  • 如何在windows下安装Pycham2020软件(方法步骤详解)

    2023-05-19 14:07:30
  • 仿迅雷焦点广告效果(JQuery版)

    2009-08-03 14:18:00
  • Python中List.count()方法的使用教程

    2023-08-12 11:56:15
  • Python+OpenCV实现阈值分割的方法详解

    2023-08-13 02:24:00
  • 在 git 中取消 __pycache__ 文件的方法

    2022-09-14 20:00:17
  • javascript+css图片切换效果

    2007-08-04 20:00:00
  • python爬虫之爬取笔趣阁小说

    2021-09-19 19:18:05
  • MySQL中的count(*) 和 count(1) 区别性能对比分析

    2024-01-24 03:12:51
  • python删除列表元素的三种方法(remove,pop,del)

    2022-10-16 11:43:21
  • 分享Python 的24个编程超好用技巧

    2021-05-21 16:51:55
  • python2.6.6如何升级到python2.7.14

    2023-08-07 22:54:52
  • Go语言使用sort包对任意类型元素的集合进行排序的方法

    2023-09-02 03:55:18
  • python+selenium+chrome批量文件下载并自动创建文件夹实例

    2022-09-14 09:56:42
  • 浅谈MySQL8.0 异步复制的三种方式

    2024-01-29 00:26:46
  • JavaScript面向对象之Prototypes和继承

    2024-04-23 09:14:54
  • 图文详解如何利用PyTorch实现图像识别

    2023-02-04 00:54:13
  • Python数据分析pandas模块用法实例详解

    2023-01-25 00:47:29
  • Python 微信爬虫完整实例【单线程与多线程】

    2023-08-19 23:12:58
  • asp之家 网络编程 m.aspxhome.com