百見は、一聞にしかず

見てもわからない事は、とりあえず聞いてみよう。

PHPでグラフを描いてファイルに保存し表示する

f:id:lbblue:20170406180522p:plain

PHPでグラフを描いてファイルに保存して、更に、それをimgタグで表示したいなと思うときがあるかもしれません。今は無くてもこれからあるかもしれません。

そんな時の為に、この記事を残しておきます。

ちなみに上部の画像は今の時期にぴったりの桜をイメージしてみました。

ちょっと良く分からなくなってきましたが、早速ソースの説明に進みたいと思います。

 

 

解説

①まず、線や点などを描くキャンバスみたいなもののサイズを指定します。

②背景色は何も指定しないと真っ黒になりますので、今回は白に指定します。

③合わせて線や点の色も指定します。

④次にグラフを描画します。今回は三角関数のグラフ(sin)にしました。波の形が綺麗というか何度見ても飽きないというかそんな感じでこれにしました。

⑤縦横の線を描きます。見た目がグッと良くなる気がします。

⑥そして画像を保存します。ファイル名を指定します。

⑦画像を破棄するのは約束事のようです。

ここまでで画像ファイルとして保存されます。

 

ソース

<?php
// ①画像を作成
$image = imagecreatetruecolor(360, 360);

// ②背景色を設定
$bcolor = imagecolorallocate($image, 200, 200, 200);
imagefill($image, 0, 0, $bcolor);

// ③線の色を設定
$color = imagecolorallocate($image, 100, 100, 100);

// ④グラフを描画
for ($x = 0; $x <= 360; $x++) {
$y = sin($x * 3.14 / 180);
imagesetpixel($image, $x, $y * 150 + 180, $color);
}

// ⑤線を描画
imageline($image, 0, 180, 360, 180, $color);
imageline($image, 180, 0, 180, 360, $color);

// ディザリングなしの 255 色パレットに変換します
imagetruecolortopalette($image, false, 255);

// ⑥画像を保存
imagepng($image, ‘./example.png’);

// ⑦画像を破棄
imagedestroy($image);

?>
<html>
<head>
<title>画像ファイルを読み込む</title>
</head>
<body>
<div>■読み込んだ画像</div>
<img src=”./example.png”>
</body>
</html>

 

実行結果

こんな感じに表示されれば完了です。

f:id:lbblue:20170406181501p:plain

 

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

 

 

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~