Шаг 232.
Основы языка Python.
Библиотека Wand. Утилита IMDisplay

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

    Для вывода на экран изображения, созданного средствами библиотеки Wand, предназначена функция display (<Выводимое изображение>), определенная в модуле wand.display (она вам также должна быть знакома). Пример:

>>> from wand.display import display 
>>> display(img)

    Вывод выполняется в служебной утилите IMDisplay, входящей в состав поставки программного пакета ImageMagick.

    Для сохранения изображения в файле следует использовать метод save() класса image. Его формат очень прост:

  save(filename=<Имя файла>)

    Давайте для примера создадим средствами wand изображение, нарисуем на нем круг, сохраним в файл, после чего откроем и нарисуем рядом с ним второй круг, уже средствами Pillow.

from wand.image import Image as WandImage
from wand.color import Color
from wand.drawing import Drawing
from PIL import Image, ImageDraw
img = WandImage(width = 500, height = 500, background = Color("white"))
draw = Drawing()
draw.stroke_color = Color("red")
draw.fill_color = Color("white")
draw.circle((100, 100), (100, 0))
draw.draw (img)
img.save (filename = "tmp.bmp")
img = Image.open ("tmp.bmp")
draw = ImageDraw.Draw(img)
draw.ellipse((200, 0, 400, 200), fill = "white", outline = "red")
img.show()
Архив с файлом можно взять здесь.

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


Рис.1. Результат работы приложения

   

И, просмотрев картинку, получившуюся в результате выполнения приведенного кода, убедимся еще раз, что библиотека wand рисует линии гораздо качественнее, чем Pillow.


   Примечание. Вообще, программный пакет ImageMagick, оберткой которого является wand, - исключительно мощное решение. Он позволяет рисовать сложные фигуры, накладывать на них всевозможные эффекты, обрабатывать растровые изображения и многое другое. Полное описание Wand можно найти по адресу http://docs.wand-py.org/en/0.4.0/, а полное описание ImageMagick - на сайте http://www.imagemagick.org/.

    На следующем шаге мы рассмотрим вывод текста.




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