PHPでは、画像とテキストを操作する場合、テキストの中心、整列、または包装の効果を実現するために、写真のテキストの幅を正確に知る必要があります。 ImageFontWidth()関数は、指定されたフォントサイズの文字幅を取得するのに役立つ非常に実用的なツールであり、それによりテキストの総幅を正確に計算します。この記事では、ImageFontWidth()関数を使用してテキスト幅を計算し、GDライブラリと組み合わせてテキストの説明を含む画像を作成する方法を紹介します。
ImageFontWidth()は、PHP GDライブラリによって提供される関数で、指定された内蔵フォントのピクセルで文字幅を返すようにします。この関数のパラメーターはフォントのサイズインデックスであり、値範囲は一般に1〜5です。数が大きいほど、フォントが大きくなります。
int imagefontwidth(int $font);
例えば:
$width = imagefontwidth(3);
このコードは、フォントサイズが3の各文字の幅を返します。
内蔵フォント内のすべての文字は同じ幅であるため、テキストの文字列の幅を計算するのは非常に簡単です。
$text = "Hello World!";
$font = 3; // フォントサイズインデックス
$charWidth = imagefontwidth($font);
$textWidth = strlen($text) * $charWidth;
ここでは、 strlen()を使用して文字列の長さを計算し、単一の文字の幅を掛けてテキストの総幅を取得します。
以下は、GDライブラリを使用して説明テキストを含む画像を作成する方法を示す完全な例です。テキストの幅は、ImageFontWidth()を使用して計算され、中央に表示されます。
<?php
// テキストとフォントサイズを設定します
$text = "これはサンプルテキストです";
$font = 5;
// テキストの幅と高さを計算します
$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);
$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;
// キャンバスサイズを作成します,幅は、テキスト幅よりわずかに大きいです,中程度の身長
$imgWidth = $textWidth + 20;
$imgHeight = $textHeight + 20;
$image = imagecreate($imgWidth, $imgHeight);
// 色を割り当てます
$bgColor = imagecolorallocate($image, 255, 255, 255); // 白い背景
$textColor = imagecolorallocate($image, 0, 0, 0); // 黒いテキスト
// テキストの開始位置を計算します,センターリングを実現します
$x = ($imgWidth - $textWidth) / 2;
$y = ($imgHeight - $textHeight) / 2;
// テキストを書きます
imagestring($image, $font, $x, $y, $text, $textColor);
// 出力画像
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
ImageFontWidth()とImageFonTheIght()を使用して、文字サイズを取得します。
テキストの長さに基づいて、テキスト全体の幅と高さを計算します。
テキスト領域よりわずかに大きいサイズのキャンバスを作成して、テキストがトリミングされていないことを確認します。
テキストの開始点座標を計算して、水平および垂直の中心を実現します。
ImageString()を使用して、画像にテキストを書き込みます。
出力PNG画像。
ImageFontWidth()内蔵フォントの単一文字の幅(ピクセル)を返します。
文字列の長さと組み合わせて、合計テキスト幅を計算できます。
GDライブラリの他の機能と組み合わせることで、テキストで画像を簡単に作成できます。
正確な位置を計算することにより、テキストの中心または調整が達成されます。
Mastering ImageFontWidth()は、特に動的に生成されたグラフィックコンテンツを作成する場合、画像ワードプロセッシングの柔軟性を大幅に向上させることができます。