GDライブラリを使用してPHPで円グラフを作成する例、gd Circle
PHP には、直接使用できる単純な画像関数がいくつかありますが、処理される画像のほとんどは、PHP をコンパイルするときに GD ライブラリを必要とします。 GD ライブラリのインストールに加えて、サポートする必要がある画像形式に応じて、PHP で他のライブラリが必要になる場合があります。 GD ライブラリは、http://www.boutell.com/gd/ から無料でダウンロードできます。GD ライブラリの最新バージョンでは、GIF、JPEG、PNG、WBMP、XBM などの形式の画像がサポートされています。 . ファイルに加え、FreeType や Type 1 などのいくつかのフォント ライブラリもサポートしています。 GDライブラリの機能を利用することで、さまざまな点、線、幾何学図形、文字、色などの演算や加工を行うことができ、また、さまざまな形式の画像ファイルを作成したり読み込んだりすることもできます。
PHPでは、GDライブラリを介して画像を処理する操作は、まずメモリ上で処理され、操作が完了した後、ファイルストリームの形式でブラウザに出力されるか、サーバーのディスクに保存されます。イメージの作成は、以下に示す 4 つの基本的な手順で行う必要があります。
①キャンバスの作成:すべての描画デザインは背景画像上で完成する必要があり、キャンバスは実際には画像情報を保存するためにメモリ内に開かれる一時領域です。今後のすべての画像操作はこの背景キャンバスに基づいて行われ、このキャンバスの管理はペイント時に使用するキャンバスと同様です。
②画像を描く:キャンバスが作成された後、このキャンバスリソースを使用して、画像の色を設定し、キャンバスを塗りつぶし、点、線分、さまざまな幾何学図形を描画し、さまざまなポートレート機能を使用して画像にテキストを追加できます。
③出力画像:画像全体の描画が完了したら、画像をサーバーが指定したファイルに特定の形式で保存するか、画像をブラウザに直接出力して顧客に表示する必要があります。ただし、画像を出力する前に、header() 関数を使用して Content-type を送信し、ブラウザに通知する必要があります。今回は、テキストの代わりに画像が送信されます。
④リソースの解放:画像が出力されると、キャンバス内のコンテンツは使用できなくなります。システム リソースを節約するには、キャンバスが占有しているすべてのメモリ リソースをタイムリーに把握する必要があります。
まず、イメージを作成するための非常に簡単なスクリプトを見てみましょう。次のスクリプト ファイル image.php では、前に紹介した画像を描画する 4 つの手順に従って、GD ライブラリを使用してセクター チャートを動的に出力します。コードは次のようになります:
コードをコピーします コードは次のとおりです:
//キャンバスを作成し、リソースタイプ変数 $image を返し、メモリ内の一時領域を開きます
$image = imagecreatetruecolor(100, 100) //作成キャンバスサイズは100x100です
//画像に希望の色を設定します。ペイント時に用意した染料ボックスに相当します
$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); //画像に色を濃い赤として割り当てます
Imagefill($image, 0, 0, $white); // キャンバスの背景を背景色で塗りつぶします
// 3D エフェクトの動的な制作
for ($i = 60; $i >50; $i--){ //10回ループして立体感を描きます
Imagefilledarc($image, 50, $i, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
Imagefilledarc($image, 50, $i, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
Imagefilledarc($image, 50, $i, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
}
Imagefilledarc($image, 50, 50, 100, 50, -160, 40, $navy, IMG_ARC_PIE); // 楕円弧を描いて塗りつぶす
Imagefilledarc($image, 50, 50, 100, 50, 40, 75, $gray, IMG_ARC_PIE); // 楕円弧を描いて塗りつぶす
Imagefilledarc($image, 50, 50, 100, 50, 75, 200, $red, IMG_ARC_PIE); // 楕円弧を描いて塗りつぶす
Imagestring($image, 1, 15, 55, '34.7%', $white); //文字列を水平方向に描画します
Imagestring($image, 1, 45, 35, '55.5%', $white); //文字列を水平方向に描画します
//GIF形式の画像をブラウザに出力します
header('Content-type:image/png'); // header 関数を使用して、次の出力を画像として処理するようにブラウザーに指示します
Imagepng($image) //ブラウザに出力します
Imagedestroy($image); // 画像を破棄してリソースを解放します
?>
以下の図に示すように、ブラウザを通じて直接スクリプトをリクエストするか、HTML の IMG タグの src 属性にスクリプトの URL を割り当てて、動的に出力される画像結果を取得します。
http://www.bkjia.com/PHPjc/914042.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/914042.html技術記事 GD ライブラリを使用して PHP で円グラフを作成する例、gd Circle PHP では、直接使用できるいくつかの単純な画像関数がありますが、処理される画像のほとんどは、PHP のコンパイル時にコンパイルする必要があります。 .