GD Graphics Library

GD グラフィック ライブラリ (GD Graphics Library) はトーマス・ボーテル (Thomas Boutell) 他によって作られたイメージを動的に操作するライブラリである。本来のプログラミング言語はANSI Cであるが、他の多くのプログラミング言語とのインタフェースが作成されている。GIF、JPEG、PNG、WBMP を生成できる。

1999年に米ユニシスがGIFに使用されている LZW圧縮法の非商業的なソフトウェア・プロジェクトに許可していた無償のライセンスを取り消したことにより、GIF を操作する機能は削除された。2004年7月7日、ユニシスの特許が世界中で失効した時に、GIFを操作する機能が再び実装された。

GDは元来、「GIFを描く (GIF Draw)」を表していた。しかしユニシスが無償ライセンスを取り消した後は非公式に、「グラフィックを描く (Graphics Draw)」を表すこととなった。

GDは、直線、弧、テキスト（プログラムで指定したフォントを使用する）から成るイメージ、その他のイメージと複数の色を作成できる。

バージョン2.0以降では、トゥルーカラー (Truecolor) イメージ、アルファ・チャネル、
リサンプリング（トゥルーカラーイメージの滑らかなリサイズが可能となる）と他の多くの大きな機能に対するサポートが追加された。

GDはC、PHP、Perl、OCaml、Tcl、Lua、Pascal、GNU OctaveとREXXを含む多くのプログラミング言語をサポートしている。また、どんな言語からでもコマンドラインを通してGDへアクセスすることができるプログラムflyがある。

GDはPHPで広く使われ、PHP 4.3 以降のバージョンではデフォルトの拡張機能となっている。それ以前はオプションであった。

開発者の交代 
2007年1月4日に、有名なPHP開発者であるPirre Joyeにプロジェクトが引き継がれた。
プロジェクトは幾月かの停滞した後、新開発者によって多くの修正を含んだ新バージョンが発表されると思われる。

例
以下は、3D円グラフ（PHP GDドキュメントのimagefilledarc（））出力例。
<?php
    // Create an image
    $image = imagecreatetruecolor(100, 100);

    // Allocate some colors
    $white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
    $gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
    $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
    $navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
    $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
    $red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
    $darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

    // Make the 3D effect
    for ($i = 60; $i > 50; $i--) {
        imagefilledarc($image, 50, $i, 100, 50, 0,   45, $darknavy, IMG_ARC_PIE);
        imagefilledarc($image, 50, $i, 100, 50, 45,  75, $darkgray, IMG_ARC_PIE);
        imagefilledarc($image, 50, $i, 100, 50, 75, 360, $darkred,  IMG_ARC_PIE);
    }

    imagefilledarc($image, 50, 50, 100, 50,  0,  45, $navy, IMG_ARC_PIE);
    imagefilledarc($image, 50, 50, 100, 50, 45,  75, $gray, IMG_ARC_PIE);
    imagefilledarc($image, 50, 50, 100, 50, 75, 360, $red,  IMG_ARC_PIE);

    // Flush the image
    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
?>

関連項目 
 ImageMagick
 Netpbm
 cairo

脚注

外部リンク 
 GD Graphics Library（現在の開発サイト）
 GD Graphics Library（古い開発サイト）
 Image Functions (PHP), support in PHP
イメージ機能 (PHP)、PHPのサポート

グラフィックライブラリ
オープンソースソフトウェア