Open Source im professionellen Einsatz

2D-Grafikbibliothek Cairo

Ein Stift für jedes Blatt

Identische Darstellung auf dem Linux- und dem Windows-Bildschirm oder in PDF-Dokumenten sowie performante Ausgabe von 2D-Grafiken - mit seinen Backends erledigt Cairo die Hauptarbeit.

Cairo ist schlank, schnell und beliebt. Derzeit ist die Bibliothek [1] als Unterbau von GTK 2.8 zu finden, und zwar hinter den Grafikroutinen der Dotnet-Umsetzung Mono und als Basis für die künftigen Versionen der Firefox-Engine Gecko. Ihr Konzept ist nicht neu, sondern von Mac OS X abgekupfert: In dem Betriebssystem von Apple basiert die Grafikbibliothek Quartz auf dem PDF-Standard und alle mit ihr gezeichneten Elemente fließen optional direkt in eine PDF-Datei. Cairo geht aber noch einen Schritt weiter.

Immer raus damit

Der primäre Vorteil der Bibliothek liegt in ihrer Unabhängigkeit vom Ausgabegerät. So kümmert sich Cairo selbstständig darum, ob die gezeichneten Elemente in einem X-Window oder in einer PDF-Datei landen. Zurzeit gelten die Ausgabeschnittstellen für X11, auf dem Windows-2000- und -XP-Bildschirm sowie für Grafikdateien im PNG-Format als stabil. Die Umleitungen in OpenGL über die Beschleunigungshilfe Glitz, Mac OS X über die Quartz-Bibliothek, XCB, Postscript und PDF befinden sich noch im Experimentierstadium.

Egal für welche Ausgabemöglichkeit sich der Programmierer entscheidet, Cairo garantiert eine konsistente Darstellung: Eine Zeichnung sieht in einer PDF-Datei genauso aus wie in einem X11-Fenster. Die Grafikbibliothek nutzt zudem alle vorhandenen Beschleunigungsfunktionen wie zum Beispiel die X Render Extension unter X11 oder Glitz [2] für die OpenGL-Darstellung.

Keine Bindungsängste

Das Cairo-API ähnelt den Befehlen von Postscript und PDF, aber auch OpenGL-Programmierer werden mit den Konzepten schnell warm. Die angebotenen Operationen reichen vom Zeichnen geometrischer Figuren wie Linien und Splines über die Einbindung von (transparenten) Bildern bis zur geglätteten Textdarstellung mittels Antialiasing. Zusätzlich lassen sich alle Objekte beliebig verformen, beispielsweise skalieren, rotieren oder strecken.

Cairo selbst ist in C geschrieben; Anbindungen ermöglichen seinen Einsatz außerdem unter Python, Ruby, Java, Perl und C++ sowie mit Hilfe der Bibliothek »Mono.Cairo« auch über das Mono-Framework unter C# und den anderen CLS-Sprachen. Weitere Bindings liegen als Testversionen vor, einen vollständigen Überblick gibt [3].

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook