如何在php中用背景图像创建不同文本格式的gif图像?

时间:2012-12-03 08:10:45

标签: php

这是否可以在php中创建具有各种文本字体,样式,格式和具有背景图像的对齐的gif图像?

例如,我有一个背景图片 enter image description here

我要在背景图片上插入的图像是

enter image description here

输出gif图像应该是这样的 enter image description here

我尝试了这个代码

<?php
// Create a new image instance
$im = imagecreatetruecolor(300, 250);
$img = imagecreatefrompng('back.png');
// Make the background white
imagefilledrectangle($im, 0, 0, 300, 250, 0xEFEFEF);

// Draw a text string on the image

imagestring($im, 20,20, 40, 'Heading1', 0x000000);
imagecopymerge($img, $im, 0, 0, 0, 0, 300, 250, 70);
// Output the image to browser
header('Content-Type: image/gif');

imagegif($img,'test.gif');
imagedestroy($im);
?>

但遗憾的是它没有按照需要提供输出,我想在输出图像中显示更多内容到背景图像。

1 个答案:

答案 0 :(得分:0)

这个设计:

image

您可以使用此代码:

<?php
// Create a new image instance
$img = imagecreatefrompng('back.png');

// Draw a text string on the image
//  imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )
imagestring($img, 5, 20, 30, 'Heading1', 0x000000);
imagestring($img, 3, 180, 30, 'Heading 2 test desc', 0x000000);

imagestring($img, 3, 20, 80, 'Text info 3', 0xFF0000);   //red
imagestring($img, 1, 180, 80, 'Demonstration text', 0x000000);

imagestring($img, 5, 400, 170, 'Price here', 0xFF0000);   //red

$im = imagecreatefrompng('plane.png'); //load pic 2
imagecopymerge($img, $im, 0, 130, 0, 0, 165, 71, 70);
imagedestroy($im);

// Output the image to browser
header('Content-Type: image/gif');
imagegif($img);
imagedestroy($img);
?>

imagestring()函数仅限于内置的,相当难看的字体,并且大小选项仅为1到5.您可以使用另一个函数替换TTF字体,如下所述。

要更改提供自己的TTF格式字体所需的字体,请将它们放在与脚本相同的文件夹中,然后将imagestring()函数替换为此字体。参数非常相似,您自己更换代码应该是微不足道的。这是解释如何使用imagettftext() - 函数的链接。

http://php.net/manual/en/function.imagettftext.php