ポンクソフト

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

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

お名前:


wentgt
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/25 00:08

初心者
メールソフトの設定ってどうやるのですか...
gmailに送りたいのですが...
2017/01/24 21:33

enveloptf
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 21:23

paywinlv
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 18:04

anklebitcw
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 11:35

butterfxa
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/24 03:37

nhadeptronmr
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 20:39

nhadeptronlv
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 15:24

sinforve
すべての
calltrackingsource.com 13s.info nhadeptrongoi.com kashinvestment.com csgo-butterfly.com anklebitergaming.com
csfire.pro envelopesstore.com ginastarmusic.com mp3-teca.com csgoodstakes.com
went.black 2pay4win.com appliancerepairsnearme.com oferta-netflix.com
techitax.com csprey.com lightshadowspace.com csboom.pro
投稿者
2017/01/23 12:46

calltrackju
すべての
cbbnews24.com
csgobooms.com
csgojoybets.com
incareersjobs.com
stcmidtenn.org
thewill.in
sakirkaratas.com
apexturnkey.in
medray.in
applevalleymarket.com
b8b90.com
danhhotgay.com
cstopstake.com
nsm.org.in
vov-fc.com
csgohugepots.com
eaglesapparelshop.com
mymobileappmobiappssub2016.com
sbppl.org
gracedental.in
kehulin.com
cheappricetoyou2015.com
vamortgageloantexas.com
doitacdoanhnghiep.com
techimanage.com
elmi.co
upea.in
esncordoba.org
goal888cash.com
fullebookz.com
2winde222.com
投稿者
2017/01/23 09:37

残りを読む »