PHP GDでテキストを含む最小の画像を作りたい
PHP GDでテキストを描画し、画像の幅・高さがそれを含む最小になるように
したいのです。
まずimageftbboxでバウンディングボックスを取得し、そのサイズにすればいいかと思い
以下のコードを書いてみましたが、うまくいきません。
<?php
$fontSize = 20;
$angle = 0;
$fontFile = './msgothic.ttc'; // MSゴシック
for ($code = ord('A'); $code <= ord('Z'); $code++) {
$text = chr($code);
$bbox = imageftbbox($fontSize, $angle, $fontFile, $text);
$w = $bbox[2] - $bbox[0];
$h = $bbox[3] - $bbox[7];
var_dump($bbox);
echo "w = $w h = $h\n";
$im = imagecreatetruecolor($w, $h);
$backcolor = imagecolorallocate($im, 0x00, 0x00, 0x00);
$forecolor = imagecolorallocate($im, 0xff, 0xff, 0xff);
imagefill($im, 0, 0, $backcolor);
$x = 0;
$y = -$bbox[7];
echo "x = $x y = $y\n";
imagefttext($im, $fontSize, $angle, $x, $y, $forecolor, $fontFile, $text);
imagegif($im, $text .'.gif');
}
この場合、Iの右半分が切れてしまいます。
$xを調整すればいいのかと思い、$x = $bbox[0]などとしてみましたが、
どうやっても必ずどれかの文字の一部が切れてしまいました。
これを正しく描画するにはどのようにすればいいでしょうか?
お礼
やはりどうしても規格が違い、一筋縄ではいかないようです。 ありがとうございました。