Журнал LinuxFormat - перейти на главную

LXF85:Cairo

Материал из Linuxformat
Версия от 18:30, 10 марта 2008; Lockal (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Грэм Моррисон заблудился на виджетных рынках Каира, он же Cairo – блестящий движок векторного рендеринга, ныне вошедший в Gnome.

Cairo 1.2

(thumbnail)
В Сети есть множество программных примеров из Cairo. Скорости хватает для оснащения анимацией (вверху слева), а библиотека графических примитивов почти совершенна.

С упорством строителей древних пирамид (но, конечно, не из-под палки), команда разработчиков Cairo завершила своё первое крупное обновление. Мы восхищались версией 1.0 еще в LXF74. Cairo – библиотека для создания графики. На первый взгляд, ничего особенного, но Cairo отличается тем, что использует масштабируемую векторную графику вместо растровой.

Векторная графика предпочтительней не только потому, что не связана с конкретным экранным разрешением или соотношением сторон, но и потому, что её обработка может быть ускорена на аппаратном уровне (например, через OpenGL), а при печати она выдаёт наилучшее качество.

Cairo 1.2, базируясь на прочном фундаменте прежней версии, развивает скорее стратегическую функциональность, чем внешний лоск. Cairo умеет преобразовывать результаты своей работы в различные форматы, чтобы всевозможные целевые приложения (например, Adobe Reader или, что важнее, любая программа GTK) могли ими воспользоваться. Наиболее заметная добавка к 1.2 – три новых «выходных интерфейса» (back-end). В первоначальной версии были «интерфейсы» для Xlib, с целью применения Cairo в X-приложениях; Win32 для платформы Windows; «интерфейс» для создания статических изображений. В версию 1.2 введены «интерфейсы» к PDF, PostScript и SVG (форматам, векторным по своей природе, в отличие от первых трёх), и тут можно ожидать многого. Именно эти три «интерфейса» встроены в принтерный механизм GTK 2.10 – первой версии, требующей Cairo; итог – немедленное и резкое повышение выходного качества приложений, пользующихся Cairo. Inkscape – яркий тому пример, его релиз 0.45 будет использовать исключительно Cairo. Очень важно, что новая версия полностью совместима с предыдущей: обновление существенно упрощается, отпадает необходимость компиляции.

Векторный анализ

Свойства навскидку
LXF85-Cairo-2.png LXF85-Cairo-3.png
Новые «интерфейсы»

У Cairo теперь есть стабильные «интерфейсы» для SVG, PDF и PostScript.

Обработка текста

Шрифты могут быть встроены в доступные «интерфейсы» или переведены в кривые.

«Интерфейсы» к PDF и PostScript (в виде неофициальных дополнений были доступны и для версии 1.0), неизмеримо улучшились – но, что естественно для открытого ПО, наилучшую поддержку имеет формат SVG: ему доступно всё, что может Cairo. Следующим по порядку совместимости идёт PDF, работающий почти так же надёжно. Проблемы возникают только с прозрачностью в PostScript, изображения в котором по умолчанию растровые. Все упомянутые «интерфейсы» теперь полноценны, и возможность выбора между выводом на экран, в SVG и PostScript даёт представление о мощи Cairo.

Разработчики Cairo предприняли немалые усилия по максимальному повышению качества текстового рендеринга, дойдя даже до встраивания шрифтов TryeType в файлы PDF и PostScript для максимальной совместимости. Если шрифты не могут быть встроены, Cairo возвращается к рендерингу текста в кривых. При простом синтаксисе Cairo для рендеринга шрифтов, возможность создания высококачественного текстового вывода как на экран, так и в файл выглядит вполне реальной.

Хотелось бы увидеть прогресс в создании «интерфейса» к Glitz для ускорения OpenGL: он всё ещё в экспериментальной стадии, хотя привязки к «языкам» заметно усовершенствованы. В частности, неплохо поддерживается Python, и Pycario идет в кильватере обновлений Cairo API; есть также привязка к .NET, включенная в Mono. Caroimm, C++ API для Cairo, почти готов, но его здесь пока нет.

Cairo 1.2 полностью стабильна (благодаря ревизии 1.22), но некоторые операции всё ещё заметно «тормозят» (ещё одна причина стабилизировать «интерфейс» для Glitz). Версия 1.2 – солидный шаг вперёд: обновлены и доработаны многие добрые начинания 1.0. Теперь, при достойной поддержке SVG и PDF, пора начинать работу с Cairo. Уже одно это может дать фору Gnome перед KDE 4.0 с его пока неопробованным графическим пакетом, Arthur.

Персональные инструменты
купить
подписаться
Яндекс.Метрика