Каир (графика)


Cairo (стилизованный под cairo ) — это графическая библиотека с открытым исходным кодом , которая предоставляет разработчикам программного обеспечения независимый от устройств API на основе векторной графики . Он предоставляет примитивы для двумерного рисования в нескольких различных бэкендах . Cairo использует аппаратное ускорение [4] , когда оно доступно.

Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если написаны привязки ; Cairo имеет ряд привязок для различных языков, включая C++ , C# и другие языки CLI , Delphi , Eiffel , Factor , Harbour , Haskell , Julia , Lua , Perl , PHP , Python , Ruby , Rust , Scheme , Smalltalk и некоторые другие, такие как Gambas. (например, Visual Basic).[5]

Поскольку Cairo — это всего лишь библиотека для рисования, может быть весьма полезно интегрировать ее с набором инструментов для графического пользовательского интерфейса.

Cairo поддерживает вывод (в том числе растеризацию ) на несколько различных серверных частей , известных в коде как «поверхности». Поддержка серверных частей включает вывод в систему X Window через Xlib и XCB , Win32 GDI , OS X Quartz Compositor , BeOS API, OS/2 , контексты OpenGL (напрямую [7] и через glitz), локальные буферы изображений, Файлы PNG , PDF , PostScript , DirectFB и файлы SVG .

В разработке находятся и другие серверные части, ориентированные на графические API OpenVG , [8] Qt , [9] Skia , [10] и Microsoft Direct2D . [11]

Это принципиально отличается от масштабируемой векторной графики (SVG), которая задает цвет фигур с помощью правил каскадных таблиц стилей (CSS). [ править ] В то время как Cairo создавал маску формы, затем делал для нее источник, а затем переносил их на поверхность, файл SVG просто указывал форму с styleатрибутом. Тем не менее, модели не являются несовместимыми; многие средства визуализации SVG используют Cairo для тяжелой работы. [12]


Каирская модель чертежа
Изображение SVG, созданное в этом примере