PHPで画像に塗りつぶした四角、楕円を描画する方法です。
以前線の引き方を紹介しました。
このやり方とよく似てるんですが、描画する関数がちょっと違うだけです。
PHPで画像に四角い線を引く方法
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 描画先画像ファイル名 $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で画像に楕円の線を引く方法
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 描画先画像ファイル名 $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()を使います。
コメントを残す