首页 > 解决方案 > 在 Python Pillow Library 中为具有透明背景的图像添加边框

问题描述

我正在处理这张图片,它有一个透明的背景。在此处输入图像描述

如果我使用以下代码:-

def add_border(input_image, output_image, border, color=0):
    img = Image.open(input_image)
    if isinstance(border, int) or isinstance(border, tuple):
        bimg = ImageOps.expand(img, border=border, fill=color)
    else:
        raise RuntimeError('Border is not an integer or tuple!')
    bimg.save(output_image)


if __name__ == '__main__':
    in_img = 'input/udit.png'
    add_border(in_img, output_image='udit_border.png',
               border=100, color="red")

这会将边框添加到图像的框架中。

我可以使用以下代码找到清晰的边缘:-

from PIL import Image, ImageOps, ImageFilter
in_img = Image.open('input/udit.png')
image_with_edges = in_img.filter(ImageFilter.FIND_EDGES)

在此处输入图像描述

我想知道,是否可以在此边缘上画一个边框,然后将这两个图像连接起来以在我的图像上添加一个边框。但我找不到办法做到这一点。我想把它改成贴纸,所以我正在寻找类似下图没有bg的东西。

在此处输入图像描述

标签: pythonpython-imaging-library

解决方案


推荐阅读