ポンクソフト

GDの基本 - PHPでGDを使ってみよう

前ページ PHPでGDを使ってみよう TOP 次ページ

目次

  1. PHPでGDを使ってみよう
  2. GDの基本
  3. フォームとの連動
  4. アンケートで円グラフ

初めてのGD

GD で画像を動的に作成し、ブラウザに出力する方法を学びます。

プログラムの作成

以下のソースを入力してください。
<?php
header("Content-Type: image/png");
$img = imagecreate(200, 200);
imagecolorallocate($img, 255, 0, 0);
imagepng($img);
?>
入力が終わったら「gd1.php」というファイル名で保存し、サーバにアップして実行してみてください。真っ赤な画像が 200 × 200 ピクセルの大きさで表示されます。

ソースの解説

header("Content-Type: image/png");
ここはGDとは直接関係ありませんが、HTTPヘッダとして、PNG 画像を出力するように設定している部分です。Content-Type ヘッダは、ブラウザ側にファイルの種類を教えるものです。普通の HTML を出力するときは、自動的に text/html(テキストファイルでHTMLを出力する)が設定されています。
$img = imagecreate(200, 200);
imagecreate は新規画像を生成する関数です。ここではサイズを 200 × 200 とし、作成された画像の画像IDを返します。
imagecolorallocate($img, 255, 0, 0);
imagecolorallocate 関数は、画像で使う色を作成します。一番最初にこの関数が呼ばれたときの色が背景色になるようです。第1引数に画像IDを指定し、第2~第4引数にそれぞれ赤・緑・青の輝度(0 ~ 255)を設定します。
imagepng($img);
引数で指定された画像IDの画像を、PNG フォーマットでブラウザに出力します。imagejpeg 関数なら JPEG フォーマットで出力できます。GIF 画像は最近の GD では使用できません。

GDのいろいろな機能を使う

文字・直線・楕円・円弧・四角などを描画してみます。

プログラムの作成

以下のソースを入力してください。
<?php
header("Content-Type: image/png");
$img = imagecreate(200, 200);
imagecolorallocate($img, 100, 0, 0);
$col = imagecolorallocate($img, 255, 255, 0);
imagestring($img, 3, 10, 10, "Hello GD!", $col);
imageline($img, 10, 25, 190, 25, $col);
$col = imagecolorallocate($img, 255, 200, 100);
imagefilledellipse($img, 100, 110, 160, 140, $col);
$col = imagecolorallocate($img, 255, 255, 255);
imagefilledrectangle($img, 60, 60, 80, 100, $col);
imagefilledrectangle($img, 120, 60, 140, 100, $col);
$col = imagecolorallocate($img, 200, 100, 100);
imagefilledarc($img, 100, 120, 120, 100, 0, 180, $col, IMG_ARC_PIE);
imagepng($img);
?>
入力が終わったら「gd2.php」というファイル名で保存し、サーバにアップして実行してみてください。顔のグラフィックスが表示されます。

ソースの解説

$col = imagecolorallocate($img, 255, 255, 0);
GD で使用する色を作成します。ここでは、文字を描画するための黄色を作成しています。
imagestring($img, 3, 10, 10, "Hello GD!", $col);
imagestring は文字を描画する関数です。第1引数で画像IDを指定して、第2引数でフォントの種類(1 ~ 5)、第3、第4引数で表示する位置、第5引数で文字列、第6引数で色を指定します。
imageline($img, 10, 25, 190, 25, $col);
imageline は直線を描画する関数です。第1引数で画像IDを指定して、第2~第3引数で始点、第4~第5引数で終点、第6引数で色を指定します。
imagefilledellipse($img, 100, 110, 160, 140, $col);
imagefilledellipse は塗り潰した楕円を描画する関数です。第1引数で画像IDを指定して、第2~第3引数で中心、第4引数で幅、第5引数で高さ、第6引数で色を指定します。
imagefilledrectangle($img, 60, 60, 80, 100, $col);
imagefilledrectangle($img, 120, 60, 140, 100, $col);
imagefilledrectangle は塗り潰した四角形を描画する関数です。第1引数で画像IDを指定して、第2~第3引数で始点、第4~第5引数で終点、第6引数で色を指定します。
imagefilledarc($img, 100, 120, 120, 100, 0, 180, $col, IMG_ARC_PIE);
imagefilledarc は塗り潰した円弧を描画する関数です。第1引数で画像IDを指定して、第2~第3引数で中心、第4引数で幅、第5引数で高さ、第6引数で開始角度、第7引数で終了角度、第8引数で色、第9引数で円弧の種類を指定します。IMG_ARC_PIE は角を丸めた円弧を描画します。
前ページ PHPでGDを使ってみよう TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


シャネル サングラス
リーマン・ショックが過ぎ、米国株はどんどんと上昇してしまい、買い時を逃した人も多いはず。
100年に一度と言われたリーマン・ショックですから当然ビビって底値なんかでは買えないわけです。
指をくわえて押し目待ちに押し目なしの状態だった人も多いことでしょう。
しかし、ようやく2016年にチャンスがやって来ました。
2017/07/16 05:31

カルティエ 時計
私の言いたいことは、私がどれほどまでに私はこの腕時計が好きだったことに驚きました。
つまり、はい、それは比較的きれいなダイヤルを好きなことがたくさんありました、そして多くのビンテージの手がかりは、ドームを含む(と)サファイアクリスタルは、過去の高層のアクリル系結晶の感覚を与えます。
しかしそれはクロノグラフ、ですが、私は、率直にその合併症、ユーティリティの多くのために私の人生でありません。
など、デザインは私に似合いませんでした。
ブライトリングのトランスオーシャンクロノグラフが1915年の私のスタンスを再考させるでない間、それは私と一緒に時間を過ごす幸せだったものである。
2017/07/16 03:55


あかさたなは
2017/07/12 18:39


222fffた
2017/07/11 14:49


222あ
2017/07/11 01:56



2017/07/09 13:30

阿部心臓
雷がやばい
2017/07/08 18:18

いいいい
おおおおおおおおおお
2017/07/07 15:07

東洋の魔女
はふはふ
2017/07/07 07:57


日本語が文字化けしてしまいます
2017/07/05 11:49

残りを読む »