Cairo

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:20, 15 декабря 2016.
Cairo
Cairo.png
Разработчики: Carl Worth
Behdad Esfahbod
Постоянный выпуск: 1.14.2 / 10 март 2015
Предыдущий выпуск: 1.12.18 / 7 ноября 2014
Состояние разработки: В активной разработке
Написана на: C
Операционная система: Кроссплатформенное ПО
Тип ПО: библиотека векторной графики
Лицензия: GNU LGPL или MPL
Веб-сайт http://cairographics.org/

Cairo — программная библиотека, предназначенная для рендеринга векторной графики с не зависящим от оборудования API. Содержит примитивы для рисования двумерных изображений на различных платформах с использованием функций аппаратного ускорения там, где это возможно. Поддерживается вывод через X Window System, GDI, Syllable API, BeOS API, Mac OS X Quartz, OS/2, OpenGL-контексты (при помощи glitz), в локальный буфер изображения, PNG, PDF, PostScript, DirectFB и SVG.

Cairo написана на Си, и есть возможность использования её в других языках через привязки, которые существуют для C++, Ada, Haskell, Java, Perl, Python, Ruby и для других. Распространяемая по двойной лицензии GNU Lesser General Public License и Mozilla Public License, Cairo является свободным ПО.

Проект начали Кейт Паккард и Карл Уорт для использования в X Window System. Изначально он назывался Xr или Xr/Xc. Имя было изменено с целью подчеркнуть кроссплатформенность и отсутствие привязки к X-серверу.

Cairo активно используется библиотекой GTK+ и средой GNOME, а также Gecko — движком, на котором основан Firefox и другие программы Mozilla Foundation.

Целевые форматы Cairo

Графическая модель Cairo

Cairo может предоставлять графику в следующих выходных форматах:

  • X Window System (с использованием расширения Render, если оно доступно)
  • OpenGL (с использованием glitz)
  • Изображения в оперативной памяти (пиксельные буферы и тому подобное)
  • PostScript (подходит для печати)
  • Файлы PDF (Portable Document Format)
  • SVG (масштабируемая векторная графика)

Не все выходные форматы изображения равноправны. Хотя Cairo и стремится создать идентичные изображения на выходе различных интерфейсов, у каждого из них есть собственные преимущества. Например, выходной буфер формата PDF использует векторную графику везде, где это возможно (используя изображения только тогда, когда это обязательно), тогда как интерфейс PostScript генерирует одно большое изображение на страницу. Модель рендеринга, представленная в Cairo, создана под влиянием многих существовавших ранее технологий. Cairo имеет понятия контуров, линий и заливки, заимствованные из PostScript, а реализацию Porter-Duff-комбинирования изображений — из формата PDF и расширений для формирования изображения в современных реализациях X Server. Кроме того, в Cairo поддерживаются отсечения, маски и градиенты. Cairo является графической библиотекой для работы с векторной графикой, то есть рисование осуществляется с помощью алгебраических описаний рисунка, а не с помощью последовательности заполненных пикселей растрового изображения. В растровом рисунке последовательность пикселей заполняется определенными значениями цвета в определенном расположении; при этом качество рисунка пропорционально размеру растрового изображения. Изображение, нарисованное при помощи растрового метода, теряет качество и четкость при увеличении. Часто изображения выглядят нечеткими или размытыми, подобно тому, как выглядит вблизи изображение на экране проектора или большого телевизора. На расстоянии изображение может выглядеть ясным, но при его приближении можно увидеть набор отдельных точек. Такая потеря качества неизбежна, поскольку никак нельзя определить, что именно должно находиться между заранее определенными пикселами.

Проекты, использующие Cairo

Очень многие влиятельные открытые проекты уже перешли на использование Cairo, и сегодня Cairo является крупнейшим игроком в области графики для Linux. Вот некоторые из наиболее популярных проектов, которые уже используют Cairo:

  • GTK+ — кроссплатформенный наборов элементов интерфейса для X Window System;
  • Pango — свободная библиотека для рендеринга и верстки текста;
  • GNOME — свободная графическая среда рабочего стола;
  • Mozilla — кроссплатформенная инфраструктура браузера;
  • OpenOffice.org — свободный набор офисных приложений, аналогичный по функциональности с Microsoft Office;
  • FontForge — свободный редактор шрифтов.

Ссылки

  1. Cairo (2016, December 15). In Wikipedia, The Free Encyclopedia. Retrieved 22:18, December 15, 2016, from https://en.wikipedia.org/wiki/Cairo_(graphics)
  2. IBMdeveloperWorks [Электронный ресурс]: Кроссплатформенная графика с использованием cairo / Дата обращения 15.12.16. - Режим доступа: http://www.ibm.com/developerworks/ru/library/l-cairo/
  3. ProGimp [Электронный ресурс]: Описание графической библиотеки Cairo / Дата обращения 15.12.16. - Режим доступа: http://www.progimp.ru/gimp/inside/cairo/