Бэкэнды в PyCairo [Урок №2]

автор

PyCairo поддерживает различные бэкэнды. Что такое бэкэнд? Это пространство, в котором графика, созданная в PyCairo, будет отображаться. В данном разделе мы воспользуемся PyCairo для создания PNG изображения, PDF и SVG файлов и будем рисовать в окне GTK.

Создать PNG изображение в PyCairo

В первом примере мы создадим PNG изображение.

Данный пример это небольшое консольное приложение, которое создает PNG изображение.

Здесь мы импортируем модуль PyCairo

Мы создаем поверхность и контекст Cairo от поверхности. Поверхность представлена в виде изображение 390х60 точек.

Для нашего текста мы применяем черные чернила. Чернила указываются при помощи метода the set_source_rgb() .

Выбираем тип шрифта при помощи метода select_font_face()  и выбираем размер шрифта при помощи метода set_font_size().

Выбираем позицию x=10.0, y=50.0 в изображении и вносим текст.

Метод write_to_png() записывает содержимое поверхности в изображение PNG.

Создание PDF файла в PyCairo

Во втором примере, мы создадим простой PDF файл.

Нам нужно открыть данный файл в приложении для чтения PDF файлов. Пользователи Linux могут воспользоваться программами KPDF или Evince.

Для рендеринга файла PDF нам нужно создать поверхность PDF, используя объект cairo.PDFSurface размер PDF файла определяется стандартными для верстки точками.

Команда show_page() заканчивает рендеринг PDF файла.

Создать SVG файл в PyCairo

В данном примере мы создадим простой SVG (Scalable Vector Graphics – буквальный перевод — масштабируемая векторная графика) файл. Файлы SVG базируются на файловом формате XML.



Мы можем воспользоваться браузером Google Chrome или программой, работающей с векторной графикой, такой как Inkscape для того чтобы открыть файл SVG

Для создания SVG файла в PyCairo, мы должны создать поверхность SVG, применив объект cairo.SVGSurface .

Метод show_page() заканчивает рендеринг SVG файла.


SVG файл в браузере Chrome

Создание GTK окна в PyCairo

В последнем примере мы воспользуемся окном GTK. Данный бэкэнд мы будем использовать в дальнейшем.

Данный пример будет отображаться в центре окно GTK, где мы написали текст «Disziplin ist Macht».

Импортируем необходимые модули PyCairo и GTK.

Далее мы рисуем на виджете Gtk.DrawingArea

После того как окно перерисуется , мы связываем сигнал draw с функцией обратного вызова (callback) on_draw().

Рисунок заканчивается внутри метода on_draw() . Третий параметр является контекстом Cairo, который становится доступным автоматически. Библиотека Cairo встроена в систему GTK.

Вам может быть интересно

Scroll Up