Шаг 234.
Основы языка Python.
Вывод текста средствами библиотеки Wand

    На этом шаге мы рассмотрим вывод текста средствами этой библиотеки.

    Что касается библиотеки wand, то вывести текст на изображение позволяет также метод text() класса Drawing. Формат метода:

  text (<X>, <Y>, <Выводимый текст>)

    Первые два параметра задают горизонтальную и вертикальную координаты точки, в которой начнется вывод текста.

    Для указания параметров выводимого текста применяются следующие атрибуты класса Drawing:

    Выведем текст на русском языке с помощью библиотеки Wand.

from wand.image import Image as WandImage
from wand.color import Color
from wand.drawing import Drawing, STYLE_TYPES, TEXT_ALIGN_TYPES, TEXT_DECORATION_TYPES
from wand.display import display
img = WandImage(width = 400, height = 300, background = Color("white") )
draw = Drawing()
draw.stroke_color = Color ("blue")
draw.fill_color = Color ("yellow")
draw.font  = r"C:\Windows\Fonts\verdana.ttf"
draw.font_size = 32
draw.font_weight = 700
draw.font_style = STYLE_TYPES[2]
draw.text_alignment  = TEXT_ALIGN_TYPES[2]
draw.text_decoration = TEXT_DECORATION_TYPES[2]
draw.text(200, 150, "Привет, мир!")
draw.draw(img)
display(img)
Архив с файлом можно взять здесь.

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


Рис.1. Вывод текста с помощью библиотеки Wand

    Получить размеры прямоугольника, в который будет вписана надпись, в wand позволяет метод get_font_metrics() класса Drawing. Формат метода:

  textsize (<Изображение>, <Строка>)

    Изображение должно представляться объектом класса Image. Метод возвращает в качестве результата объект класса FontMetrics, объявленного в модуле wand.drawing. Из атрибутов этого класса нас интересуют следующие:

    Пример:

>>> fm = draw.get_font_metrics (img, "Привет, мир!")
>>> print (fm.text_width, fm.text_height)
216.0 39.0

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




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