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

【PHP入門】imagestring()関数で画像にテキストを水平に描画する方法を解説

imagestring()関数とは

imagestring() は、PHPのGDライブラリに組み込まれている関数の一つで、画像上に文字列を水平方向に描画するために使用されます。動的に生成した画像へテキストを追加したい場合などに便利な関数です。

基本構文

bool imagestring($image, $font, $x, $y, $string, $color)

パラメータの詳細

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

  • $image ― 描画対象となる画像リソースです。通常は imagecreatetruecolor() 関数や imagecreate() 関数を使って、指定したサイズの空の画像を生成します。

  • $font ― フォントサイズを指定します。組み込みフォントの場合、1〜5の整数値で指定でき、数値が大きいほど文字が大きくなります。

  • $x ― 文字列を描画する位置のX座標(水平方向)を指定します。画像の左上を基準点とします。

  • $y ― 文字列を描画する位置のY座標(垂直方向)を指定します。こちらも画像の左上を基準点とします。

  • $string ― 描画したい文字列を指定します。

  • $color ― 文字列の色を指定します。通常は imagecolorallocate() 関数で作成した色識別子を使用します。

戻り値

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

使用例1:複数の文字列を描画する

以下の例では、青い背景の画像に白い文字列を2行描画しています。

<?php
    // imagecreate()関数で画像のサイズを指定して空の画像を作成
    $img = imagecreate(700, 300);

    // 画像の背景色を設定(青)
    $background_color = imagecolorallocate($img, 0, 0, 255);

    // 画像のテキスト色を設定(白)
    $text_color = imagecolorallocate($img, 255, 255, 255);

    // 文字列を含む画像を生成する関数
    imagestring($img, 50, 180, 150, "Tutorialspoint", $text_color);
    imagestring($img, 30, 160, 120, "Simply Easy Learning", $text_color);

    header("Content-Type: image/png");
    imagepng($img);
    imagedestroy($img);
?>

出力結果

【PHP入門】imagestring()関数で画像にテキストを水平に描画する方法を解説

使用例2:1つの文字列を描画する

次の例では、グレーの背景に黄色い文字列を1行描画しています。

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

    // 画像の背景色を設定(グレー)
    $background_color = imagecolorallocate($img, 122, 122, 122);

    // 画像のテキスト色を設定(黄色)
    $text_color = imagecolorallocate($img, 255, 255, 0);

    // 文字列を含む画像を生成する関数
    imagestring($img, 10, 30, 60, "Tutorialspoint:Simply Easy Learning", $text_color);

    header("Content-Type: image/png");
    imagepng($img);
    imagedestroy($img);
?>

出力結果

【PHP入門】imagestring()関数で画像にテキストを水平に描画する方法を解説

まとめ

imagestring() 関数を使えば、PHPだけで簡単に画像へテキストを描画できます。フォントサイズは1〜5の組み込みフォントから選択でき、X座標・Y座標を指定することで自由な位置に文字列を配置可能です。画像の保存や出力には imagepng() などの関数を組み合わせて使用しましょう。なお、より高品質なフォント描画が必要な場合は、TrueTypeフォントに対応した imagettftext() 関数の利用も検討するとよいでしょう。

  1. PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法

    imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む

  2. PHPのimagecreate()関数とは?使い方とサンプルコードを解説

    PHPのimagecreate()関数は、新しい画像(イメージリソース)を作成するために使用されるGDライブラリの関数です。パレットベースの画像を生成し、その後の描画処理やテキスト追加などに利用できます。imagecreate()とimagecreatetruecolor()の違い画像を作成する際には、imagecreate()よりもimagecreatetruecolor()を使用することが推奨されています。これは、imagecreatetruecolor()で作成できるフルカラー(トゥルーカラー)画像の方が高品質であり、画像処理を最高品質の状態で行えるためです。特にグラデーションや写真のよ