PHPでは、GDライブラリは画像を処理するための完全な一連の関数を提供します。これは、画像ファイルを動的に生成するために使用できます。検証コードの生成、透かし型画像の作成、署名画像の生成など、画像、 ImageCreate() 、およびImageFontWidth()など、テキストを画像に出力する必要があるシナリオの場合、2つの非常に実用的な関数です。
この記事では、ImageFontWidth()を使用してフォント幅を取得し、 ImageCreate()を組み合わせて単純なテキスト画像出力を作成する方法を詳細に紹介します。
ImageFontWidth()は、フォント幅を取得するためにPHP GDライブラリで使用される関数であり、その定義は次のとおりです。
int imagefontwidth(int $font);
$ fontパラメーターはフォントサイズを指定し、フィントのみを内蔵しています(1〜5)。
返品値は、フォント内の各文字のピクセル幅です。
たとえば、 ImageFontWidth(5)は通常9を返し、Font 5が各文字で幅9ピクセルであることを示します。
ImageCreate()は、空白の画像リソースを作成するために使用され、その基本的な構文は次のとおりです。
resource imagecreate(int $width, int $height);
パラメーターは、それぞれキャンバスの幅と高さ(単位:ピクセル)です。返されたのは、後続の図面に使用できる画像リソースハンドルです。
入力テキストの長さに基づいて画像キャンバスを動的に作成する方法を示す完全な例を示し、 imagestring()を使用してテキストを出力します。
<?php
// コンテンツを設定します
$text = "訪問してください m66.net!";
$font = 5;
// 画像サイズを計算します
$font_width = imagefontwidth($font);
$font_height = imagefontheight($font);
$width = $font_width * strlen($text);
$height = $font_height + 10;
// キャンバスを作成します
$image = imagecreate($width, $height);
// 色を設定します
$white = imagecolorallocate($image, 255, 255, 255); // 白い背景
$black = imagecolorallocate($image, 0, 0, 0); // 黒いフォント
// 文字列を書きます
imagestring($image, $font, 0, 5, $text, $black);
// ブラウザに画像を出力します
header("Content-Type: image/png");
imagepng($image);
// リソースを破壊します
imagedestroy($image);
?>
上記のコードを実行すると、PHPはPNG画像を動的に生成し、「M66.netへようこそ!」というテキストが生成されます。画像に表示されます。
組み込みのフォントは制限されていますが、 ImagetTftext()を使用してカスタムTTFフォントを使用すると、より絶妙なタイポグラフィを実現できます。ただし、テストテキストを迅速に出力したり、単純な画像マークアップに使用されたりする場合、 ImageFontWidth()とImageCreate()の組み合わせは依然として非常に効率的です。
この記事の説明を通して、 ImageFontWidth()を使用して文字幅を取得し、 ImageCreate()でキャンバスを作成する方法を学び、基本的なテキスト画像出力プログラムを実装しました。このプロセスは、初心者がPHP画像処理の基本原則を理解するために非常に適しており、その後のより複雑な画像処理の基盤を置いています。