在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
原图:
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)
上一篇: 桃胶可以天天吃吗?在不知道就晚了!