欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!

程序员文章站 2023-10-28 23:12:52
前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e ......

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

ps:如有需要python学习资料的小伙伴可以加点击下方链接自行获取

基本环境

  • 版本:python3.6

  • 系统:windows

相关模块:

1 import requests as req
2 from pil import image
3 from io import bytesio

 

原图:

在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!

结果图:

在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!

完整代码

 1 import requests as req
 2 from pil import image
 3 from io import bytesio
 4 def make_thumb(url, sizes=(300, 175)):
 5     """
 6     生成指定尺寸缩略图
 7     :param path: 图像路径
 8     :param sizes: 指定尺寸
 9     :return: 无返回,直接保存图片
10     """
11     response = req.get(path)
12     im = image.open(bytesio(response.content))
13     mode = im.mode
14     if mode not in ('l', 'rgb'):
15         if mode == 'rgba':
16             # 透明图片需要加白色底
17             alpha = im.split()[3]
18             bgmask = alpha.point(lambda x: 255 - x)
19             im = im.convert('rgb')
20             im.paste((255, 255, 255), none, bgmask)
21         else:
22             im = im.convert('rgb')
23 ​
24     # 切成方图,避免变形
25     width, height = im.size
26     if width == height:
27         region = im
28     else:
29         if width > height:
30             # h*h
31             delta = (width - height) / 2
32             box = (delta, 0, delta + height, height)
33         else:
34             # w*w
35             delta = (height - width) / 2
36             box = (0, delta, width, delta + width)
37         region = im.crop(box)
38 ​
39     # resize
40     thumb = region.resize((sizes[0], sizes[1]), image.antialias)
41     #保存图片
42     filename = url.split('/')[-1]
43     name, ext = filename.split('.')
44     savename = name + str(sizes[0]) + '_' + str(sizes[1]) + '.' + ext
45     thumb.save(savename, quality=100)
46 ​
47 ​
48 path = r'c:\users\hp\desktop\luckylttory.png'
49 make_thumb(path)