ポンクソフト

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

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

お名前:



すごく参考になりました!
ありがとうございます。
2017/03/30 09:47

名無しのリーク
香川県ルーちゃん餃子のフジフーヅはバイトにパワハラの末指切断の大けがを負わせた犯罪企業
2017/03/29 23:34

高級時計 ブランド レディース
特恵中-新作入荷!
当社の商品は絶対の自信が御座います
迅速、確実にお客様の手元にお届け致します
実物写真、付属品を完備しております。
低価格を提供すると共に、品質を絶対保証しております
ご注文を期待しています
2017/03/28 18:37

カルティエ ソリテール
ブランドコピーブランドN級品専門店
史上最も激安ブランドブランドコピー-即日 配送可,100%入荷。
当店は正規品と同等品質は品質3年保証でご注文から5 日でお届け致します。
レディースとメンズ激安通販専門店!品質と本物は同様です。
全て新品、高い品質、激安 、送料は無料です( 日本全国)すべての商品は品質2年無料保証です。
ブランドコピー時計:
2017/03/24 14:04

カリマー
解りやすくて、とてもいいサイトですね!
phpは初心者ですが、最後まで到達できるよう頑張ります!
2017/03/23 04:03


ああああ
2017/03/23 00:54

オメガ ボーイズ
★2017最高等級新しい商品大量入荷!
■在庫情報随時更新!(*^-^*)
■信用第一、良い品質、低価格は。
★歓迎光臨★送料無料(日本全国)
ご注文を待ちしております
よろしくお願いいたします_(._.)_
2017/03/22 09:09


テスト
2017/03/21 14:02

ゆうた
かりんがすき
2017/03/17 14:36

saraebo
別windowsとして実装することなく、actionのphpで、コマンドとするデータベース等の更新で、その結果をクライアントに返さない(homeページの元画面は変わらない。)とする事はできるのでしょうか?
2017/03/17 12:09

残りを読む »