- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF74-75:Cairo
Материал из Linuxformat.
Содержание |
Графическая библиотека Cairo
Грэм Моррисон (Graham Morrison) рассматривает один из самых ценных бриллиантов в короне Gnome.
Масштабируемая векторная графика для виджетов и окон. Аналоги: Qt Arthur, OpenVG.
- ВЕРСИЯ: 1.0
- РАЗРАБОТЧИК: The Cairo Development
- WEB: http://cairographics.org
- ЦЕНА: Бесплатно по лицензии LGPG
Cairo позволяет сделать рабочий стол Linux намного красивей. Это API для векторного рендеринга, обладающий потенциальной возможностью трансформировать все пиксельные окна и виджеты в красивые, полностью масштабируемые кривые и линии (см. статью «Что такое.. Cairo?» в LXF71). Достаточно вспомнить о кривых Безье, отображении текста со сглаживанием (antialiasing) и аффинных преобразованиях — масштабирование, поворот и сдвиг (наверняка вы видели их в Inkscape и Adobe Illustrator).
Поскольку Cairo — это API (интерфейс прикладного программирования), он чрезвычайно полезен для разработчиков программ. Большинство пользователей не заметят эффекта от появления Cairo до тех пор, пока не появятся программы, его использующие.
Разработку приложений, использующих Cairo, надо вести на поддерживаемом библиотекой языке программирования. По умолчанию это C. Поддерживаются также Java, Python, Perl, Ruby, а также среда .NET (соотвествующие привязки включены в состав Mono). Поддержка C++ находится в стадии разработки.
Функции, содержащиеся в API довольно просты, но документированы на уровне простого описания структур и функций. Вам не нужно иметь каких-то специальных знаний: если вы знакомы с функциями рендеринга других API, например GTK или Qt, то быстро разберетесь, что к чему. Фактически это напоминает переход от Gimp к Scribus. Вместо того чтобы иметь дело с абсолютными значениями, вы пользуетесь курсором, который перемещается относительно предыдущей позиции.
Векторная виктория
Разработчики, использующие Cairo, могут создавать графику, полностью независимую от устройств, на которые она будет выводиться, при этом заметно повышая качество вывода. Все это благодаря векторам: их можно искривлять, масштабировать и поворачивать без потери качества. Независимость от устройств позволяет использовать различные буферы для конечного рендеринга. Первый релиз официально поддерживает три таких буфера: Xlib для X Window System, рендеринг в файл изображения и Win32 для платформы Windows.
Есть и другие буферы, которые легко можно использовать с Cairo: например, отрисовка в PDF-файл. Однако наиболее интересный из них — Glitz. Вектора используются для построения трехмерных моделей, вывод которых на экран может быть ускорен посредством OpenGL. Именно этим и занимается Glitz. Тот же принцип используется и в OS X, и потому комбинация Glitz и Cairo будет наиболее эффективна на рабочем столе Linux.
Даже если вы не программист, то все равно не заметить появление Cairo будет довольно трудно. Он довольно активно используется в Gnome 2.12. Только взгляните на выбор цветов, в котором теперь очень плавные переходы от цвета к цвету — все это благодаря Cairo. Последний релиз движка визуализации Gecko, который будет включен в Firefox 1.5, также использует Cairo, и OpenOffice.Org, и команда Novell уже работают над Cairo-визуализацией слайдов и презентаций.
Cairo 1.0 имеет ошибку в начертании штриховых линий и кривых, которая была исправлена в релизе 1.0.2. Cairo, фактически, находится в постоянном развитии, и каждый релиз — всего лишь шаг на длинном пути к совершенству. Но, по крайней мере, API сейчас остается постоянным, чего нельзя было сказать о версиях, предшествующих 1.0.
Свободу Cairo!
У Cairo имеется и конкурент в лице Qt Arthur. Да, благодаря привычке изобретать колесо, два самых популярных рабочих стола Linux имеют два разных API для выполнения одной и тоже задачи. Arthur предлагает примерно те же возможности, что и Cairo (в том числе, ускорение через OpenGL), но поскольку компания Trolltech накладывает некоторые ограничения на использование Arthur, Cairo кажется нам лучшим выбором для открытого рабочего окружения.
Cairo — это блестящая идея в блестящем исполнении. Независимость от устройства вывода наряду с улучшением качества выводимой графики говорит о достижении зрелости в развитии графических средств Linux. Формат SVG (Scalable Vector Graphics) становится все более и более привычным явлением, и Cairo может его без проблем использовать.
Cairo окажет огромное влияние на будущее Gnome, особенно при использовании аппаратного ускорения. Как успешно это будет — зависит от разработчиков. Впрочем, судя по первому релизу, даже если возникнут некоторые проблемы, они не смогут помешать успеху этого замечательного инструментария.
Вердикт Linux Format
- Возможности — 8/10
- Функционирование — 8/10
- Простота использования — 7/10
- Документация — 6/10
Cairo должна стать стандартным графическим API для рабочего стола Linux.
- Рейтинг — 8/10