El Cairo (gráficos)


Cairo (estilizado como cairo ) es una biblioteca de gráficos de código abierto que proporciona una API independiente del dispositivo basada en gráficos vectoriales para desarrolladores de software . Proporciona primitivas para el dibujo bidimensional en una serie de back-ends diferentes . Cairo usa aceleración de hardware [4] cuando está disponible.

Una biblioteca escrita en un lenguaje de programación puede usarse en otro lenguaje si se escriben enlaces ; Cairo tiene una gama de enlaces para varios lenguajes, incluidos C++ , C# y otros lenguajes CLI , Delphi , Eiffel , Factor , Harbour , Haskell , Julia , Lua , Perl , PHP , Python , Ruby , Rust , Scheme , Smalltalk y varios otros como Gambas (Al igual que Visual Basic).[5]

Dado que Cairo es solo una biblioteca de dibujos, puede ser muy útil integrarlo con un conjunto de herramientas de interfaz gráfica de usuario.

Cairo admite la salida (incluida la rasterización ) a varios back-end diferentes , conocidos como "superficies" en su código. El soporte de back-end incluye la salida al sistema X Window , a través de Xlib y XCB , Win32 GDI , OS X Quartz Compositor , BeOS API, OS/2 , contextos OpenGL (directamente [7] y a través de glitz), búferes de imágenes locales, Archivos PNG , PDF , PostScript , DirectFB y archivos SVG .

Hay otros back-ends en desarrollo dirigidos a las API de gráficos OpenVG , [8] Qt , [9] Skia , [10] y Direct2D de Microsoft . [11] Los backends de BeOS, OS/2 y DirectFB se eliminaron en 2022. [12]

Esto constituye un enfoque fundamentalmente diferente de Scalable Vector Graphics (SVG), que especifica el color de las formas con reglas de hojas de estilo en cascada (CSS). [ cita requerida ] Mientras que Cairo crearía una máscara de una forma, luego crearía una fuente para ella y luego la transferiría a la superficie, un archivo SVG simplemente especificaría la forma con un styleatributo. Dicho esto, los modelos no son incompatibles; muchos renderizadores SVG usan Cairo para trabajos pesados. [13]


El modelo de dibujo de El Cairo
Imagen SVG generada por este ejemplo