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]