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

GD Graphics Library
開発元 Thomas Boutell
初版 1994年 (30年前) (1994)
最新版
2.2.5 / 2017年8月30日 (6年前) (2017-08-30)
リポジトリ https://github.com/libgd/libgd
プログラミング
言語
C
対応OS クロスプラットフォーム
種別 グラフィックライブラリ
ライセンス BSDライセンス
公式サイト libgd.github.io
テンプレートを表示

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

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

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

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

GDはCPHPPerlOCamlTclLuaPascalGNU OctaveREXXを含む多くのプログラミング言語をサポートしている。また、どんな言語からでもコマンドラインを通して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);
?>

関連項目 編集

脚注 編集


外部リンク 編集

イメージ機能 (PHP)、PHPのサポート