PHP画像入門-PHPで画像を描画

Pocket

PHPを使うと画像を描画することができます。詳細なマニュアルがあるので簡単に扱えます。
基本的な部分を備忘録としてまとめておきます。

基本

PHPファイルとして「image.php」というようなファイル名を付けた場合、HTML上で「<img src='image.php'>」とすると画像として表示されます。パラメータを付けた場合も同様で「<img src='image.php?p=x'>」とします。

PHPファイルは次のように書きます。幅300ピクセル、高さ200ピクセルのPNG画像を出力する場合です。
これが基本形になります。

<?php
//イメージを作る。
$img = imagecreatetruecolor(300, 200);

//ここに処理を書く。

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

次のようにするとJPEG画像になります。

header("Content-type: image/jpeg");
imagejpeg($img);

通常は背景が黒になります。背景色は次のように指定します。

//色を設定する。
$red = imagecolorallocate($img, 255, 0, 0);
//背景を塗りつぶす。
imagefill($img, 0, 0, $red);

直線

imageline($img, $x1 ,$y1 ,$x2 ,$y2 ,$color)

$imgはimagecreatetruecolorで作られるイメージ(画像リソース)です。
$colorはimagecolorallocateで作られる色です。
座標($x1,$y1)と座標($x2,$y2)を結ぶ直線を描きます。
線の太さは指定できません。基本的に1ピクセルの細い線になります。

長方形

imagerectangle($img ,$x1 ,$y1 ,$x2 ,$y2 ,$color)
imagefilledrectangle($img ,$x1 ,$y1 ,$x2 ,$y2 ,$color)

座標($x1,$y1)と座標($x2,$y2)を頂点とする長方形を描きます。
imagefilledrectangleは内部を塗りつぶします。

円、楕円

imageellipse($img, $cx, $cy, $width, $height, $color)
imagefilledellipse($img, $cx, $cy, $width, $height, $color)

座標($cx,$cy)を中心とし幅$width、高さ$heightとする楕円を描きます。
幅と高さを同じにすると円になります。この場合、幅=高さ=直径となります。

多角形

imagepolygon($img, $points, $num_points, $color);
imagefilledpolygon($img, $points, $num_points, $color);

$pointsは[$x0, $y0, $x1, $y1, $x2, $x2, ...]のように配列で頂点を指定して多角形を描きます。
$num_pointsで頂点の数を指定します。
imagefilledpolygonは内部を塗りつぶします。

文字列

imagettftext($img, $size, $angle, $x, $y, $color, $fontfile, $text)

座標($x,$y)を左下にした文字列を描きます。
$sizeは文字の大きさです。
$angleは角度です。通常は0とします。
$fontfileはフォントのパスです。
$textは描く文字列です。

サンプル

<?php
$width=400;
$height=300;
//描画
$img = @imagecreatetruecolor($width, $height);
//色
$bgcolor = imagecolorallocate($img, 255, 255, 255);
$linecolor = imagecolorallocate($img, 255, 0, 0);
//背景
imagefill($img, 0, 0,$bgcolor);
//直線
$x1 = 50;
$y1 = 50;
$x2 = 350;
$y2 = 250;
imagerectangle($img, $x1, $y1, $x2, $y2, $linecolor);

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

[ 2017年1月7日 | カテゴリー: PHP | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報