1

好的,现在我正努力完成这项工作的正式时间为 10 小时,但每分钟我都离最终目标越来越远......
问题是,我需要创建一个函数、类或其他任何东西所选的 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

如果您总是缺少开头结尾的一个字母,为什么不将单个字母的宽度添加到您的最终尺寸中呢?

以我的经验,imagettfbbox 在决定什么适合和不适合边界框方面​​做得不是很好——你需要自己捏造一点:)

希望这可以帮助。

卢克·彼得森

于 2010-11-23T02:03:23.300 回答