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

基本环境

  • 版本:Python3.6

  • 系统:Windows

相关模块:

1 import requests as req
2 from PIL import Image
3 from io import BytesIO

原图:

用Python批量生成指定尺寸的缩略图!比Ps好用!_第1张图片

结果图:

用Python批量生成指定尺寸的缩略图!比Ps好用!_第2张图片

完整代码

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
 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)

你可能感兴趣的:(Python,Python基础,Python3,Python开发,编程)