imagettfbbox& imagettftext - 调整大小,位置,旋转

时间:2010-04-21 11:47:59

标签: php imagettftext

好的,现在我正在尝试让这项工作完成10个小时,但是每一分钟我都会离最终目标越来越远...... 问题是,我需要创建一个函数,类或任何由选定的TTF或truetype字体创建,正确调整大小,并用网址给出的文本填充图像。图像不应该长于该文本。 我已经放弃了我的所有代码,到目前为止我得到的最好的东西都是从网上获取的......

<?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

此外,如果有完成的功能或类,这将是伟大的..:'(:)

1 个答案:

答案 0 :(得分:0)

如果你总是缺少一个字母的开头,为什么不把一个字母的宽度加到你的最终尺寸?

根据我的经验,imagettfbbox并不能很好地决定什么做什么和不适合在一个边界框内 - 你需要自己稍微捏一下它:)

希望这有帮助。

卢克彼得森

相关问题