PHP imagecreate具有可变高度

时间:2013-06-09 07:26:51

标签: php image

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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);
?>