применение художественного оформления изображения (граница) в Python (программно)

Я ищу способ создать границу в Python. Есть ли любая библиотека в Python, который мы можем импортировать для создания границы.

Обратите внимание, что я не хочу использовать любые маски изображения для создания этого эффекта (например, Я не хочу использовать любой пакет редактирования изображение как GIMP для создания маски изображения границы).

Вот то, что я ищу:

import fooImageBorders 
import Image 

foo = Image.open("someImage.jpg")
foo2 = fooImageBorders.bevel(foo, color = black)

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

Я посмотрел на документацию PIL и не мог найти способ сделать это. У меня есть Windows XP и, кажется, нет способа установить PythonMagick любой для Python 2.6, если у Вас нет cygwin.

5
задан Cœur 14 November 2019 в 13:15
поделиться

3 ответа

Посмотрите на модуль ImageOps в PIL.

import Image
import ImageOps

x = Image.open('test.png')
y = ImageOps.expand(x,border=5,fill='red')
y.save('test2.png')
11
ответ дан 18 December 2019 в 13:14
поделиться
foo2 = foo.copy()
draw = ImageDraw.Draw(foo2)
for i in range(width):
    draw.rectangle([i, i, foo2.size[0]-i-1, foo2.size[1]-i-1], outline = color)

foo2 будет иметь ширину -пиксельную границу цвета .

Если Вам нужны разные цветные границы с каждой стороны, Вы можете заменить .прямоугольник на повторяющиеся вызовы .линии .

Если Вы хотите, чтобы граница не закрывала какую-либо часть существующего изображения, используйте это вместо foo.copy().

foo2 = Image.new(foo.mode, (foo.size[0] + 2*width, foo.size[1] + 2*width))
foo2.paste(foo, (width, width))
1
ответ дан 18 December 2019 в 13:14
поделиться

Вы можете использовать PythonMagick модуль . Документация к этому модулю здесь (Magic ++ документация)

Пример: Чтобы добавить к изображению красную 2-пиксельную рамку, необходим следующий код.

from PythonMagick import Image
i = Image('example.jpg') # reades image and creates an image instance
i.borderColor("#ff0000") # sets border paint color to red
i.border("2x2") # paints a 2 pixel border
i.write("out.jpg")
# writes the image to a file 
2
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: