現在の位置: ホーム> 最新記事一覧> ImageFontWidth()を使用して、テキストの水平センタリグメントを実現します

ImageFontWidth()を使用して、テキストの水平センタリグメントを実現します

M66 2025-05-29

画像処理にPHPを使用する場合、多くの場合、画像にテキストを追加する必要があります。テキストをより美しく見せるために、水平のセンターリングは一般的で重要な操作です。この記事では、PHPのImageFontWidth()関数を使用して、他の関連する関数と組み合わせて、画像内のテキストの水平中心アライメント効果を実現する方法を紹介します。

1。ImageFontWidth ()関数の紹介

ImageFontWidth()は、PHP GDライブラリの関数であり、指定されたフォントサイズの下に単一の文字の幅を取得します。その基本的な使用法は次のとおりです。

 int imagefontwidth ( int $font )
  • $ fontはフォントサイズで、値は1〜5の範囲です。

  • 戻り値は、そのフォントサイズの単一文字の幅(ピクセル)です。

単一の文字の幅を理解した後、文字列の長さに基づいてテキスト全体の幅を計算し、それにより、水平に中心の開始X座標を計算できます。

2。実装手順

  1. 写真を作成します。

  2. フォントサイズとテキストコンテンツを設定します。

  3. テキストのピクセル幅を計算します:文字幅×文字数。

  4. 中央にあるときに開始x座標を計算します:画像幅を引いたテキスト幅を引いて、2で除算します。

  5. ImageString()関数を使用して、画像にテキストを描画します。

  6. 写真を出力または保存します。

3。コードの例

ImageFontWidth()を使用してテキストの水平中心アラインメントを実現する方法を示す完全な例を示します。

 <?php
// ワイドシートを作成します 400px,高い 100px 本物のカラー写真
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// 色を定義します
$bg_color = imagecolorallocate($image, 255, 255, 255); // 白い背景
$text_color = imagecolorallocate($image, 0, 0, 0);     // 黒いテキスト

// 背景の色を埋めます
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);

// テキストコンテンツとフォントサイズ
$text = "訪問してください m66.net";
$font = 5; // フォントサイズ,範囲1-5

// 単一の文字幅を取得します
$char_width = imagefontwidth($font);

// テキスト全体の幅を計算します
$text_width = $char_width * strlen($text);

// テキストの開始を計算しますx座標,センターレベルを達成します
$x = ($width - $text_width) / 2;

// y座標,垂直にセンター
$char_height = imagefontheight($font);
$y = ($height - $char_height) / 2;

// 写真にテキストを書いてください
imagestring($image, $font, $x, $y, $text, $text_color);

// ブラウザに写真を出力します
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>

このコードで:

  • ImageFontWidth($ font)フォントサイズが5の場合、単一の文字の幅(ピクセル)を返します。

  • strlen($ text)を使用して、文字列文字の数を計算します。

  • 製品はテキストの総幅です。

  • 画像幅を使用してテキストの幅を差し引き、2で除算して、中心の開始点xを計算します。

  • このようにして、テキストを水平に表示できます。

4。概要

ImageFontWidth()は、テキストレベルのセンタリングを実現するための重要な関数の1つです。文字列の長さと画像サイズを組み合わせて、テキストの開始図面位置を簡単に計算して、テキストが中央に表示されることを確認できます。 ImageFonTheight()と組み合わせることで、より正確な垂直センタリングを実現できます。