今回は画像に線を引く方法の紹介です。
線と言っても直線だけでなく、四角や楕円の線の引き方も紹介したいと思います。
PHPで画像に直線を引く方法
背景用に用意した青い画像 blue.jpg に、白い線を引いてみます。
サンプルコード
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_line.jpg"; // 描画先の画像読み込み $image = imagecreatefromjpeg($file); // 線の色(今回は白) $color = imagecolorallocate($image, 255, 255, 255); // 線を引く imageline( $image, // 描画する先の画像 100, // 描画開始の x 座標 100, // 描画開始の y 座標 300, // 描画終了の x 座標 200, // 描画終了の y 座標 $color); // 線の色 // ファイル名を指定して画像出力 imagejpeg($image, $newfile); |
コードの解説
blue.jpg はベース画像で、描画後は blue_line.jpg に出力します。
imagecreatefromjpeg()でblue.jpgを読み込みます。
imagecolorallocate()で色を指定します。
255, 255, 255 部分はRGBで指定し、今回は白になります。
0~255まで10進数で指定できます。
imageline()で線を引きます。
描画開始の 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_square.jpg"; // 描画先の画像読み込み $image = imagecreatefromjpeg($file); // 線の色(今回は白) $color = imagecolorallocate($image, 255, 255, 255); // 四角い線を引く imagerectangle( $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進数で指定できます。
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); // 楕円の線を引く imageellipse( $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進数で指定できます。
imageellipse()で線を引きます。
円の中心の x 座標と y 座標で円の中心のポイントを定義し、円の横幅の長さと円の縦幅の長さで円の大きさを定義します。
x座標はベース画像の左端からの距離で、y座標はベース画像の上端からの距離になります。
単位はピクセルになります。
imagejpeg() で描画後の画像をファイル名を指定し、jpeg画像で出力します。
まとめ
PHPで画像に線を引く方法の紹介でした!
直線を引くには、imagecolorallocate() を使い、開始位置と終了位置、色を指定することで簡単に線がひけます。
四角はimagerectangle() を使い、こちらも開始位置と終了位置、色を指定することで簡単に線がひけます。
円はimageellipse()を使います。四角線などのように左上端を指定とかでなく円の中心を定義し、縦と横の幅を指定します。
コメントを残す