VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Python基础教程 >
  • 在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/

前言

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

作者:

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

note.youdao.com/notesha

基本环境

  • 版本:Python3.6
  • 系统:Windows

相关模块:

import requests as req
from PIL import Image
from io import BytesIO

原图:

结果图:

完整代码

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)

相关教程