PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのimageline()関数で画像に線を描画する方法を解説

imageline() は、PHPに標準で組み込まれているGDライブラリの関数のひとつで、指定した2点間に直線を描画するために使用します。動的な画像生成においてよく使われる基本的な描画関数なので、使い方をしっかり押さえておきましょう。

構文

bool imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

パラメータ

imageline() 関数は、以下の6つのパラメータを受け取ります。

  • $image − 描画対象となる画像リソースを指定します。

  • $x1 − 線の始点のX座標を指定します。

  • $y1 − 線の始点のY座標を指定します。

  • $x2 − 線の終点のX座標を指定します。

  • $y2 − 線の終点のY座標を指定します。

  • $color − 線の色を指定します。imagecolorallocate() 関数で作成した色識別子を使用します。

戻り値

線の描画に成功した場合は true を、失敗した場合は false を返します。

例1:既存の画像に線を追加する

<?php
    // imagecreatefrompng() 関数でPNG画像を読み込む
    $img = imagecreatefrompng('C:\xampp\htdocs\test\515.png');

    // 線の色を割り当てる(黄色)
    $text_color = imagecolorallocate($img, 255, 255, 0);

    // 線の太さを設定する
    imagesetthickness($img, 5);

    // imageline() 関数で線を描画する
    imageline($img, 80, 300, 1140, 300, $text_color);

    // 画像を出力する
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

このコードでは、読み込んだPNG画像の座標 (80, 300) から (1140, 300) まで、黄色い水平線を描画しています。imagesetthickness() を併用することで、線の太さを5ピクセルに設定できます。

出力結果

PHPのimageline()関数で画像に線を描画する方法を解説

例2:新規キャンバスに斜めの線を描く

<?php
    // imagecreate() 関数で空の画像を作成する
    $img = imagecreate(700, 300);

    // 使用する色を割り当てる
    $grey = imagecolorallocate($img, 122, 122, 122);
    $blue = imagecolorallocate($img, 0, 0, 255);

    // 線の太さを設定する
    imagesetthickness($img, 15);

    // グレーの下地となる線を描画する
    imageline($img, 0, 0, 550, 400, $grey);

    // 青い線を描画する
    imageline($img, 0, 0, 550, 400, $blue);

    // 画像を出力する
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

この例では、700×300ピクセルの新しいキャンバスを作成し、左上の原点 (0, 0) から座標 (550, 400) へ向けて太い青い斜線を描いています。なお、imagecreate() で画像を作成する場合、最初に imagecolorallocate() で割り当てた色(ここではグレー)が自動的に背景色として適用される点にも注目してください。

出力結果

PHPのimageline()関数で画像に線を描画する方法を解説

このように imageline() を使えば、わずか数行のコードで画像への線の描画が可能です。図形や簡易チャート、透かし画像の生成など、GDライブラリを活用した動的な画像処理の第一歩として、ぜひ実践してみてください。

  1. PHPのimagearc()関数の使い方を徹底解説!弧の描画方法と実例コード

    imagearc() 関数は、PHPのGDライブラリに含まれる描画関数の一つで、画像上に弧(アーク)を描画するために使用されます。開始角度と終了角度を指定することで、円の一部だけでなく、0度から360度まで指定すれば完全な円や楕円を描くことも可能です。 構文 imagearc( $img, $cx, $cy, $width, $height, $start, $end, $color ) パラメータ $img: 描画対象となる画像リソース。imagecreatetruecolor() などで事前に作成しておきます。 $cx: 弧の中心の x 座標。 $cy: 弧の中心の y 座標。 $wid

  2. JavaとOpenCVで線を描画する方法をわかりやすく解説

    Java版OpenCVライブラリのorg.opencv.imgprocパッケージには、Imgprocというクラスが含まれています。画像に直線を描画するには、このクラスが提供するline()メソッドを呼び出します。 line()メソッドのパラメータ line()メソッドは、以下のパラメータを受け取ります。 Matオブジェクト ― 直線を描画する対象となる画像を表します。 Pointオブジェクト2つ ― 直線の始点と終点の座標を表します。 Scalarオブジェクト ― 直線の色をBGR形式で指定します。 整数値 ― 直線の太さを指定します(デフォルト値:1)。 サンプルコード 以下は、白紙の画