Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用可变高度创建PHP图像_Php_Image - Fatal编程技术网

使用可变高度创建PHP图像

使用可变高度创建PHP图像,php,image,Php,Image,我需要通过php创建一个包含变量文本的图像。 图像有固定的宽度和可变的高度,因为有时我有一个非常短的文本,其他时候它里面有一个非常长的文本 当我创建图像时,imagecreate函数需要精确的尺寸,这是一个问题,因为我的文本是可变的。有没有快速的方法来解决这个问题 谢谢在创建图像之前,使用获取文本的高度和宽度 这里是代码: <? header("Content-Type: image/png"); if(!isset($_GET['size'])) $_GET['size'] = 44;

我需要通过php创建一个包含变量文本的图像。 图像有固定的宽度和可变的高度,因为有时我有一个非常短的文本,其他时候它里面有一个非常长的文本

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

谢谢

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

这里是代码:

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