Добавьте рамку к изображению с прозрачным фоном в Python Библиотека подушек - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю с этим изображением, которое имеет прозрачный фон. enter image description here

Если я использую следующий код: -

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)

enter image description here

Мне было интересно, смогу ли я нарисовать границы через этот край, а затем соединить два изображения, чтобы иметь рамку на моем изображении. Но я не мог найти способ сделать это. Я хочу изменить его на наклейку, поэтому я ищу что-то вроде следующего изображения без BG.

enter image description here

...