cairo — програмна бібліотека, використовувана для реалізації векторної графіки, з апаратно незалежним API. cairo дозволяє створювати примітиви у двомірному просторі через різні вихідні буфери. cairo дозволяє використовувати апаратне прискорення, коли це можливо. cairo є вільним програмним забезпеченням під подвійною ліцензією LGPL та Mozilla Public License (MPL).

cairo
The cairo graphics library logo.
ТипГрафічна бібліотека
РозробникиКарл Уорт і Behdad Esfahbod
Стабільний випуск1.12 (23 березня 2012; 12 років тому (2012-03-23))
Операційна системаБагатоплатформова
Мова програмуванняC[1]
ЛіцензіяGNU Lesser General Public License версії 2.1 (тільки) або Mozilla Public License 1.1
Репозиторійgitlab.freedesktop.org/cairo/cairo
Вебсайтcairographics.org

Особливістю cairo є підтримка формування 2D-графіки, використовуючи різні механізми виведення, від стандартного виводу на екран через X Window System, Quartz і Win32, до генерації PostScript, PDF, SVG і задіяння OpenGL, XCB і DirectFB. При цьому бібліотека забезпечує уніфікований інтерфейс для формування зображень, незалежно від використовуваного бекенда виводу. API бібліотеки надає функції, що нагадують оператори малювання PostScript і PDF, доповнені можливостями трансформації зображень (масштабування, поворот, обертання тощо), створення напівпрозорих об'єктів і рендеринга тексту.

Попри те, що cairo написаний на С, існують засоби для його використання на багатьох інших мовах програмування, включно з C++, C#, Common Lisp, Haskell, Java, Python, Perl, Ruby, Smalltalk та інших.[2]

Історія

ред.

Проєкт cairo був заснований Кейтом Пакардом та Карлом Уортом для використання у X Window System. Спочатку він називався Xr або Xr/Xc. Назва була змінена для того, щоб підкреслити що це багатоплатформова бібліотека, не прив'язана до серверу X. Назва «cairo» була отримана від первісної назви Xr, відповідно до лігатури в Юнікоді Chi Rho. Перший склад оснований на візуальній схожості літери X та грецької літери Chi, другий склад заснований на схожості вимови літери r та грецької літери Rho.[3]

Backends

ред.

cairo підтримує вивід через велику кількість графічних систем. Серед них X Window System, Win32 GDI, Mac OS X Quartz, BeOS API, OS/2, контексти OpenGL (через glitz), локальні графічні буфери, PNG-файли, PDF, PostScript та SVG.

Програмний інтерфейс для рисування двомірної графіки, реалізований у вільній бібліотеці cairo, запропонований для включення до складу майбутнього стандарту ISO C++.[4] Бібліотека, написана однією мовою програмування, може використовуватися іншою мовою, якщо написано прив'язки; cairo має цілий ряд прив'язок для різних мов, включаючи C ++, C# та інші мови CLI, Delphi, Eiffel, Factor, Harbor, Haskell, Julia, Lua, Perl, PHP, Python, Ruby, Rust, Schame, Smalltalk та декількох інших, як Гамбас (Visual Basic, як).[5]

Відомі використання

ред.

cairo набув популярності у спільноті відкритих сирцевих кодів за надання багатоплатформової підтримки для просунутого двомірного креслення.

GTK+, починаючи з версії 2.8 2005 року, використовує cairo для рендерингу більшості своїх віджетів.

Проєкт Mozilla почав використовувати cairo в останніх версіях рушія виводу Gecko, для рендерингу графічного змісту продуктів Mozilla. Gecko 1.8. рушій виводу у Mozilla Firefox 2.0 та SeaMonkey 1.0, використовує cairo для рендерингу SVG та Canvas. Gecko 1.9 в основі Firefox 3 використовує cairo для рендерінгу і змісту вебсторінок, і користувацького інтерфейсу.

Схожі технології

ред.

cairo конкурує із такими схожими технологіями, як WPF та GDI+ від Microsoft та Quartz 2D від Apple Computer.

Виноски

ред.
  1. The cairo Open Source Project on Open Hub: Languages Page — 2006.
  2. Архівована копія. Архів оригіналу за 6 червня 2017. Процитовано 14 вересня 2007.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Mailing list thread about the cairo name change. Архів оригіналу за 25 червня 2013. Процитовано 14 вересня 2007.
  4. В стандарт C++ предложено добавить API на основе свободной графической библиотеки Cairo [Архівовано 1 квітня 2014 у Wayback Machine.] // opennet.ru 05.01.2014
  5. Language bindings. www.cairographics.org. Процитовано 31 серпня 2022.

Посилання

ред.

Див. також

ред.
  NODES
Project 1