前言

  • 本文主要是为了给宽图片上下补边
  • 试验环境
Windows 10 2004
Python 3.8.3
Pillow 7.1.2

代码

# encoding: utf-8
# author: qbit
# date: 2020-09-2
# summary: 给宽图片上下补白边,让其满足一定比例,然后缩放到指定尺寸

import math
from PIL import Image

def add_white_edge(inImgPath, outImgPath, width, height):
    r"""
    给宽图片上下补白边,让其满足一定比例,然后缩放到指定尺寸
    inImgPath: 输入图片路径
    outImgPath: 输出图片路径
    width: 最终宽度
    height: 最终高度
    """
    print(f'{inImgPath}')
    inImg: Image.Image = Image.open(inImgPath)
    bgWidth = inImg.width
    bgHeight = inImg.height
    if bgWidth > bgHeight:
        bgHeight = math.ceil((bgWidth * height) / width)
    # 创建一个白色背景图片
    bgImg: Image.Image = Image.new("RGB", (bgWidth, bgHeight), (255, 255, 255))
    bgImg.paste(inImg, (0, round((bgHeight - inImg.height) / 2)))

    bgImg.resize((width, height), Image.LANCZOS).save(outImgPath)

if __name__ == "__main__":
    add_white_edge('wide.jpg', 'wide_out.jpg', 108, 150)

示例

  • 输入图片样例(点击图片查看边框

wide.jpg

  • 输出图片样例(点击图片查看边框

wide_out.jpg

相关阅读

本文出自 qbit snap

qbit
268 声望279 粉丝