2

私は長方形の箱の境界を持っています。テキストのサイズがわからなくても、(カスタム フォントを使用して) テキストをボックスに収めることはできますか。つまり、テキストがユーザー定義ボックスに収まるように適切なテキストサイズを設定するphp関数はありますか? テキストの折り返しは必要ありません。

私が見つけた関数はimagettfbboximagettftext だけです。

imagettfbbox は正反対のことを行います (フォント サイズを指定して、境界を指定します) 一方、imagettftext は画像にテキストを書き込むために使用されます (fontSize が既知の場合のみ)。

4

1 に答える 1

5

php gdを使用していますか?もしそうなら、私は使用しますimagettfbbox。サイズ以外のすべてのパラメータを定義するだけです。次に、定義されたスペースに収まるのに十分小さくなるまで、サイズのループの外に出ます。私は前にこれをやったことがあります。メモリ内で実際のイメージ クリエイティブを実行しないため、非常に高速です (実際にイメージを作成するよりもはるかに高速です)。

for($size=40;$size>5;$size--){
  $sizearray=imagettfbbox ( $size , 0- , 'font.ttf' , $message );
    $width=$sizearray[0] + $sizearray[4];
    if($width<$threshold/*you define*/){
      //you've got your $size
      break;
    }
}
于 2012-11-01T23:55:40.050 に答える