Шаг 229.
Основы языка Python.
Библиотека Wand. Пример использования

    На этом шаге мы рассмотрим особенности использования этой библиотеки.

    Чтобы увидеть разницу между Pillow и Wand, нарисуем два круга - сначала средствами первой библиотеки, потом средствами второй.

>>> # Рисуем эллипс средствами Pillow
>>> from PIL import Image, ImageDraw
>>> img = Image.new ("RGB", (300, 300), (255, 255, 255))
>>> draw = ImageDraw.Draw (img)
>>> draw.ellipse((0, 0, 150, 150), fill="white", outline="red")
>>> img.show()

    Результат построения приведен на рисунке 1.


Рис.1. Построение средствами Pillow

>>> # Рисуем эллипс средствами ImageMagick и Wand
>>> # Импортируем класс Image из модуля wand.image под именем
>>> # WandImage, чтобы избежать конфликта имен с одноименным классом
>>> # из модуля PIL
>>> from wand.image import Image as WandImage
>>> from wand.color import Color
>>> from wand.drawing import Drawing
>>> from wand.display import display
>>> img = WandImage(width = 300, height = 300, background = Color("white"))
>>> draw = Drawing()
>>> draw.stroke_color = Color ("red")
>>> draw.fill_color = Color ("white")
>>> draw.ellipse ( (150, 150), (150, 150))
>>> draw.draw (img)
>>> display (img)

    Результат построения приведен на рисунке 2.


Рис.1. Построение средствами Wand

    Методика создания первого круга (с помощью Pillow) должна быть уже нам знакома - в отличие от методики рисования второго круга, когда мы задействовали средства wand.

    Итак, сначала мы создаем объект класса image, определенный в модуле wand.image и представляющий рисуемое изображение. Конструктор этого класса в нашем случае имеет следующий формат вызова:

  Image (width = <Ширина>, height = <Высота>[, background = <Цвет фона>] )
Если цвет фона не указан, изображение будет иметь прозрачный фон. Пример:
>>> from wand.image import Image as WandImage
>>> from wand.color import Color
>>> img = WandImage(width = 400, height = 300, background = Color("black"))
>>> img
<wand.image.Image: e1038a4 '' (400x300)>

    Цвет в wand задается в виде объекта класса Color, определенного в модуле wand.color. Конструктор этого класса в качестве параметра принимает строку с описанием цвета, которое может быть задано любым из знакомых нам способов. Примеры:

>>> from wand.color import Color
>>> Color ("white") # Белый цвет
wand.color.Color('srgb(255,255,255)')
>>> Color ("#FF0000") # Красный цвет
wand.color.Color('srgb(255,0,0)')
>>> Color("rgb(0, 255, 0)") # Зеленьй цвет
wand.color.Color('srgb(0,255,0)')

    Рисованием на изображении заведует определенный в модуле wand.drawing класс Drawing. Создадим его, вызвав конструктор без параметров:

>>> from wand.drawing import Drawing
>>> draw = wand.drawing.Drawing ()
>>> draw
<wand.drawing.Drawing object at 0x02888FF0>

    На следующем шаге мы рассмотрим задание параметров рисуемых фигур.




Предыдущий шаг Содержание Следующий шаг