Я ищу способ создать границу в 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.
Посмотрите на модуль ImageOps в PIL.
import Image
import ImageOps
x = Image.open('test.png')
y = ImageOps.expand(x,border=5,fill='red')
y.save('test2.png')
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))
Вы можете использовать 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