Cairo はネイティブ PHP の拡張モジュールで、Cairo Graphics Library を使って画像に手を加えます。
Cairo Graphics Library は、C で書かれた 2D ライブラリです。 複数の出力デバイスに対応しています。 現在対応している出力ターゲットには、X Window System や Quartz、Win32、画像バッファ、PostScript、PDF、そして SVG ファイルがあります。 実験的なバックエンドとして、OpenGL (glitz を利用) や XCB、BeOS、 OS/2、そして DirectFB があります。このライブラリは、 二種類のテキスト操作やレイアウトにも対応しています。 "toy" API はデモレベルの品質の対応です。 glyphs API はフル機能を搭載していmすが、pango などのヘルパーライブラリと組み合わせるのが最適です。 フォントバックエンドは、FreeType や Quartz、Win32、そしてユーザーフォントに対応しています。
コンピューターグラフィックスには、ベクターとラスターの二種類の形式があります。 ラスターグラフィックスとは、画像をピクセルの配列として表す形式です。 一方ベクターグラフィックスは、点や線、曲線、多角形といった幾何プリミティブを使って画像を表します。 これらのプリミティブを作るには、方程式を使います。 Cairo Graphics Libraryはベクター型のグラフィックスを扱います。 サイズは小さくなり、拡大・縮小や移動そして回転も自由自在で、 画像の品質には何も影響を及ぼしません。
Cairo Graphics Library でできる操作には、 三次ベジエ曲線の描画や塗りつぶし、半透明画像の変換や合成、 そしてアンチエイリアスしたテキストのレンダリングなどがあります。 すべての描画操作は何らかのアフィン変換 (拡大縮小や回転など) で表せます。これは、PostScript や PDF の描画処理とよく似ています。
Cairo 拡張モジュールの狙いは、公式にサポートされているすべての フォントバックエンドとサーフェイスバックエンドに対応することと、 cairo の全機能を PHP から使えるようにすることです。