0

我需要通过 php 创建一个带有可变文本的图像。图像具有固定的宽度和可变的高度,因为有时我的文本很短,而有时我的文本很长。

当我创建图像时,imagecreate 函数需要精确的尺寸,这是一个问题,因为我的文本是可变的。有没有快速解决的方法?

谢谢

4

2 回答 2

2

在创建图像之前,使用imagettfbbox获取文本的高度和宽度。

于 2013-06-09T07:30:35.710 回答
0

这是代码:

<?
header("Content-Type: image/png");

if(!isset($_GET['size'])) $_GET['size'] = 44;
if(!isset($_GET['text'])) $_GET['text'] = "Hello, world!";
$font_type="./fonts/Arial.ttf";
//word wrap
$_GET['text'] = wordwrap($_GET['text'], 30, "\n");
$size = imagettfbbox($_GET['size'], 0, $font_type, $_GET['text']);
$xsize = abs($size[0]) + abs($size[2])+20;
$ysize = abs($size[5]) + abs($size[1])+20;

$image = imagecreate($xsize, $ysize);
$blue = imagecolorallocate($image, 0, 0, 255);
$white = imagecolorallocate($image, 255,255,255);
imagettftext($image, $_GET['size'], 0, abs($size[0])+5, abs($size[5])+5, $white, $font_type, $_GET['text']);

imagepng($image);
imagedestroy($image);
?>
于 2013-06-09T09:39:27.967 回答