PHP から動的にグラフィカル メニューを作成しています。次のような画像が 1 つだけ表示されます。
One Two Three Four
ただし、問題は、css で画像を配置するために、各ページ タイトルの x オフセットと幅 (たとえば、左オフセットとピクセル単位の「1」の幅) を決定する必要があることです。
スペースを含むページ タイトルを除いて、すべて正常に動作します - imagettfbbox() は間違った位置を返します。Arial フォント (TTF) を使用しています
この問題を回避する方法について何か提案はありますか?
編集:次の関数を使用してテキストの境界を決定し、現在動作しています:
function calculateTextBox($font_size, $font_angle, $font_file, $text) {
$box = imagettfbbox($font_size, $font_angle, $font_file, $text);
$min_x = min(array($box[0], $box[2], $box[4], $box[6]));
$max_x = max(array($box[0], $box[2], $box[4], $box[6]));
$min_y = min(array($box[1], $box[3], $box[5], $box[7]));
$max_y = max(array($box[1], $box[3], $box[5], $box[7]));
return array(
'left' => ($min_x >= -1) ? -abs($min_x + 1) : abs($min_x + 2),
'top' => abs($min_y),
'width' => $max_x - $min_x,
'height' => $max_y - $min_y,
'box' => $box
);
}
編集 2: 残念ながら、異なるフォント サイズとフォント ファイルを使用すると、寸法が間違ってしまいます...