トップページ >  PHP >  PHPで破線を表示する
初版2013/05/21: 最終更新日2013/05/21
PHPで破線を表示する
目次
PHPで破線を表示する
PHPで破線を表示する
PHPで破線を出力するには、imagesetstyleとimagelineで作成します。
imagedashedlineは古い関数なので使うべきではありません。

imagesetstyleだと破線のピクセルや色を細かく指定することができます。
以下は、青色4ピクセルの白色2ピクセルの破線の例と、imagedashedlineの例です。
なぜか片方は表示されません。

<?php
    //画像の作成
    $img = imagecreatetruecolor(100, 40);
    // 破線用
    $black = imagecolorallocate($img, 0, 0, 0);
    $blue  = imagecolorallocate($img, 0, 255, 255);
    // 4ピクセル青で、2ピクセル黒
    $style = array($blue, $blue ,$blue ,$blue , $black, $black);

    // 破線出力
    imagesetstyle($img, $style);
    imageline($img, 0, 0, 100, 40, IMG_COLOR_STYLED );

    // 表示される
    imagedashedline($img, 10, 13, 10, 35, $blue);
    // 表示されない
    imagedashedline($img, 10, 13, 90, 30, $blue);

    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");

    imagepng($img);

    //画像の消去(メモリの解放)
    imagedestroy($img);
?>

以下、実行例です。



また、背景が黒色なので、以下のように白と青と黄色で線を描画すると、破線というかカラフルな線を描画することができます。

<?php
    //画像の作成
    $img = imagecreatetruecolor(100, 40);
    // 破線用
    $white = imagecolorallocate($img, 255, 255, 255);
    $blue  = imagecolorallocate($img, 0, 255, 255);
    $yellow = imagecolorallocate($img, 255, 255, 0);
    // 4ピクセル青で、2ピクセル白
    $style = array($blue, $blue ,$blue ,$blue , $white, $white,$yellow,$yellow,$yellow);

    // 破線出力
    imagesetstyle($img, $style);
    imageline($img, 0, 0, 100, 40, IMG_COLOR_STYLED );

    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");


    imagepng($img);

    //画像の消去(メモリの解放)
    imagedestroy($img);
?>

以下、実行例です。