1

わかりました、これを機能させようとしているのは正式に10時間ですが、最終目標から1分ごとに遠ざかっています...
問題は、関数、クラスなどを作成する必要があることです選択した TTF または TrueType フォントが作成され、適切にサイズ変更され、URL で指定されたテキストで画像が埋められます。画像はそのテキストより長くしてはなりません。私はすべてのコードをあきらめました。これまでに得た最高のものは、ネットから取得したものです...

<?php
  if(!isset($_GET['size'])) $_GET['size'] = 20;
  if(!isset($_GET['text'])) $_GET['text'] = "Moj tekst";
  $get_font = ( isset( $_GET['font'] ) ) ? $_GET['font'] : 'arial';

  $size = imagettfbbox($_GET['size'], 0, "font/".$get_font.".ttf", $_GET['text']);
  $xsize = abs($size[0]) + abs($size[2]);
  $ysize = abs($size[5]) + abs($size[1]);

  $image = imagecreate($xsize, $ysize);

  imageSaveAlpha($image, true);
  ImageAlphaBlending($image, false);

  $transparentColor = imagecolorallocatealpha($image, 200, 200, 200, 127);
  Imagefill($image, 0, 0, $transparentColor);

  $blue = imagecolorallocate($image, 0, 0, 255);
  $white = ImageColorAllocate($image, 255,255,255);
  $black = ImageColorAllocate($image, 0,0,0); //-($_GET['size']/20)
  imagettftext($image, $_GET['size'], 0, abs($size[0]), abs($size[5]), $black, "font/".$get_font.".ttf", $_GET['text']);

  header("content-type: image/png");
  imagepng($image);
  imagedestroy($image);
?>

このコードは問題ありませんが、最後または最初の後者のエッジが部分的に隠れているか、作成された画像に収まらない場合があります (フォント サイズによって異なります)。これは、フォント サイズが小さい場合の問題ではありません。そして、私が本当に必要とする機能は、画像の回転を変更して画像全体の比率を変更し、テキストが収まるようにすることです.

例: http: //img199.imageshack.us/img199/9368/32739521.jpg

また、これを行う完成した関数またはクラスがあれば、それは素晴らしいことです.. :'( :)

4

1 に答える 1

0

最初の最後の 1 文字が常に欠けている場合は、最終的なサイズに 1 文字の幅を追加してみませんか?

私の経験では、 imagettfbbox は、境界ボックス内に収まるものと収まらないものを判断するのにあまり適していません-自分で少しごまかす必要があります:)

お役に立てれば。

ルーク・ピーターソン

于 2010-11-23T02:03:23.300 に答える