現在の位置: ホーム> 最新記事一覧> PHPでImageFontWidth()関数を使用してフォントの幅を取得するにはどうすればよいですか?詳細な分析と実用的な例

PHPでImageFontWidth()関数を使用してフォントの幅を取得するにはどうすればよいですか?詳細な分析と実用的な例

M66 2025-06-12

PHPでは、テキストレイアウトとタイポグラフィの画像を処理するときにフォントの幅を取得する必要があることがよくあります。 ImageFontWidth()関数は、組み込みのフォント幅を取得するためのシンプルで実用的なツールです。この記事では、 ImageFontWidth()関数の使用法と例を使用して、アプリケーションをすばやく習得するのに役立ちます。


ImageFontWidth()関数は何ですか?

ImageFontWidth()は、PHP GDライブラリの関数であり、組み込みのフォント幅を取得します。整数パラメーターを取り、フォントの数(1から5)を表し、フォント内の各文字の幅(単位:ピクセル)を返します。この関数は、主にImagestring()関数で使用され、画像に文字列を描画するために使用されます。

関数プロトタイプ:

 int imagefontwidth ( int $font )
  • $ font :フォント番号、値は1〜5の範囲です。

  • 返品値:フォントに対応する単一文字幅、ユニットはピクセルです。


事前定義された組み込みフォント

PHP GDライブラリには5つの組み込みフォントがあり、各フォントは数値に対応し、サイズは徐々に増加します。

フォント番号フォントサイズ説明します
1 5x8ピクセル最小フォント
2 6x12ピクセルより小さなフォント
3 7x13ピクセル中型フォント
4 8x16ピクセル大きなフォント
5 9x15ピクセル最大フォント

ImageFontWidth()のシナリオを使用する

Imagestring()などの関数を使用して画像にテキストを出力する場合、テキストの位置またはキャンバスサイズを調整するために、テキストの幅と高さを動的に計算する必要があることがよくあります。 ImageFontWidth()は、各文字の幅をすばやく取得し、文字列の長さを組み合わせて合計幅を計算するのに役立ちます。


実用的な例

次の例は、異なるフォントの幅を取得し、それを使用して文字列幅を計算し、最後に画像のテキストを中央に配置する方法を示しています。

 <?php
// 空白の画像を作成します,幅 400,高い 100
$image = imagecreatetruecolor(400, 100);

// 背景色を白に設定します
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// テキストの色を黒に設定します
$black = imagecolorallocate($image, 0, 0, 0);

// 出力される文字列
$text = "Hello, m66.net!";

// フォント番号を選択します
$font = 3;

// 获取单个字符的幅
$charWidth = imagefontwidth($font);

// 计算整条文本的幅
$textWidth = strlen($text) * $charWidth;

// 获取单个字符的高い(使用 imagefontheight 関数)
$charHeight = imagefontheight($font);

// 画像内のテキストの開始座標を計算します,水平および垂直のセンタリングを実現します
$x = (imagesx($image) - $textWidth) / 2;
$y = (imagesy($image) - $charHeight) / 2;

// 画像に文字列を描画します
imagestring($image, $font, $x, $y, $text, $black);

// ブラウザに画像を出力します
header("Content-Type: image/png");
imagepng($image);

// 画像リソースを破壊します
imagedestroy($image);
?>

コード説明:

  • ImageFontWidth()を介してフォント幅を取得し、文字列の長さに基づいて合計幅を計算します。

  • ImageFontheight()を介してフォントの高さを取得して、垂直センタリングを実現します。

  • 単純な数学的計算により、テキストを画像上に水平および垂直に中央に配置することができます。

  • この例の文字列には、ドメイン名M66.netが含まれており、ドメイン名の交換の要件を満たしています。


まとめ

  • ImageFontWidth()は、PHPビルトインフォントで単一文字の幅を取得するための便利な関数です。

  • strlen()imagefontheight()を組み合わせると、テキストのレイアウトを正確に制御できます。

  • シンプルなテキストの迅速な描画に適しているため、カスタムフォントや複雑なタイポグラフィをサポートしません。

  • カスタムフォントを使用する必要がある場合は、 imagettfbbox()を使用してテキストサイズを取得することを検討してください。