PHPで画像に塗りつぶした四角、楕円を描画する方法

PHPで画像に塗りつぶした四角、楕円を描画する方法です。

以前線の引き方を紹介しました。

≫ PHPで画像に直線や四角、楕円の線を引く方法

このやり方とよく似てるんですが、描画する関数がちょっと違うだけです。

目次

PHPで画像に四角い線を引く方法

サンプルコード

// 描画先画像ファイル名
$file = "blue.jpg";

// 編集後画像ファイル名
$newfile = "blue_square.jpg";

// 描画先の画像読み込み
$image = imagecreatefromjpeg($file);

// 線の色(今回は白)
$color = imagecolorallocate($image, 255, 255, 255);

// 四角い線を引く
imagefilledrectangle(
	$image,   // 描画する先の画像
	100,      // 左上角の x 座標
	100,      // 左上角の y 座標
	300,      // 右下角の x 座標
	200,      // 右下角の y 座標
	$color);  // 線の色

// ファイル名を指定して画像出力
imagejpeg($image, $newfile);

コードの解説

blue.jpg はベース画像で、描画後は blue_square.jpg に出力します。

imagecreatefromjpeg()でblue.jpgを読み込みます。

 

imagecolorallocate()で色を指定します。

255, 255, 255 部分はRGBで指定し、今回は白になります。

0~255まで10進数で指定できます。

 

imagefilledrectangle()で塗りつぶした四角を描画します。

線を引くときはimagerectangle()でした。

左上角の x 座標と y 座標で四角の左上の角の位置を定義し、右下角の x 座標と y 座標で四角の右下の角の位置を定義します。

上記の2点を元に四角を描画します。

x座標はベース画像の左端からの距離で、y座標はベース画像の上端からの距離になります。

単位はピクセルになります。

 

imagejpeg() で描画後の画像をファイル名を指定し、jpeg画像で出力します。

PHPで画像に楕円の線を引く方法

サンプルコード

// 描画先画像ファイル名
$file = "blue.jpg";

// 編集後画像ファイル名
$newfile = "blue_circle.jpg";

// 描画先の画像読み込み
$image = imagecreatefromjpeg($file);

// 線の色(今回は白)
$color = imagecolorallocate($image, 255, 255, 255);

// 楕円の線を引く
imagefilledellipse(
	$image,   // 描画する先の画像
	300,      // 円の中心の x 座標
	200,      // 円の中心の y 座標
	400,      // 円の横幅の長さ
	200,      // 円の縦幅の長さ
	$color);  // 線の色

// ファイル名を指定して画像出力
imagejpeg($image, $newfile);

コードの解説

blue.jpg はベース画像で、描画後は blue_circle.jpg に出力します。

imagecreatefromjpeg()でblue.jpgを読み込みます。

 

imagecolorallocate()で色を指定します。

255, 255, 255 部分はRGBで指定し、今回は白になります。

0~255まで10進数で指定できます。

 

imagefilledellipse()で塗りつぶした楕円を描画します。

楕円の線を引くのはimageellipse()を使いました。

円の中心の x 座標と y 座標で円の中心のポイントを定義し、円の横幅の長さと円の縦幅の長さで円の大きさを定義します。

x座標はベース画像の左端からの距離で、y座標はベース画像の上端からの距離になります。

単位はピクセルになります。

 

imagejpeg() で描画後の画像をファイル名を指定し、jpeg画像で出力します。

まとめ

四角い線を引くのはimagerectangle() を使いましたが、塗りつぶしの場合はimagefilledrectangle() を使います。

円の線を引くのはimageellipse()を使いましたが、塗りつぶしの場合はimagefilledellipse()を使います。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる