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 varios extremos posteriores 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 variedad 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 (Como Visual Basic).[5]

Dado que Cairo es solo una biblioteca de dibujos, puede resultar 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 salida al sistema X Window , a través de Xlib y XCB , Win32 GDI , OS X Quartz Compositor , la API de BeOS , OS / 2 , contextos OpenGL (directamente [7] y mediante glitz), búferes de imágenes locales, Archivos PNG , PDF , PostScript , DirectFB y SVG .

Hay otros back-end en el desarrollo dirigidos a las API de gráficos OpenVG , [8] Qt , [9] Skia , [10] y Direct2D de Microsoft . [11]

Esto constituye un enfoque fundamentalmente diferente de los gráficos vectoriales escalables (SVG), que especifica el color de las formas con las 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 las 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. [12]


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