ImageCreate()函数可创建图像。被创建的图像有两个参数:图像的宽度、图像的高度。ImageCreate(100,80)一句将创建一个宽100个象素、高80个象素的图像,图像格式可为PNG、JPEG和GIF。
用ImageCreate()函数创建图像实际上是将TrueType字体文字(TEXT)变成图形格式,所以,我们要往图像变量写入文字,所用函数为ImageString,该函数的用法举例如下:
ImageString($img,3,10,10,$string,$color);
解释:
$img - 图像对象;
数值 - 分别为:3,文字部分的大小,取HTML标准的字体大小。两个10分别为文字的在图像中的X和Y值;
$string - 将变为图像内容的字符串;
$color - 预设的颜色变量。
我们知道,只有PNG和GIF可为背景透明的,故而我们将在header中指定图片格式,语句如下:header("content-type:image/png(或gif)")。而要令图像背景透明,我们首先需要给图像指定背景色然后再令其透明,所需函数描述如下:
ImageColorAllocate():设定图像背景和前景色。参数:被设定的图像对象、RGB颜色值。如 $red = ImageColorAllocate($img,255,0,0) 一句将 $img 图像对象的前景或背景色设置为红色;
ImageColorTransparent():设定指定颜色为透明色。参数:被设定的图像对象、将设定为透明的颜色变量。如 $bgcolor = ImageColorTransparent($img,$bgcolor) 一句将图像$img的背景色($bgcolor)设定为透明的,即该颜色将溶入实际的HTML页面或其他容器的背景色,跟随实际背景色而变化。
以下例子将把"Hello PHP"变为背景色透明的图像。该图像背景色为黑色,前景色为红色。由于已经作了背景透明处理,在效果中我们将看不到黑色。
header("content-type:image/png");
$img=ImageCreate(100,35);
$bgcolor=ImageColorAllocate($img,0,0,0);
$red=ImageColorAllocate($img,255,0,0);
$bgcolortrans=ImageColorTransparent($img,$bgcolor);
ImageString($img,5,10,10,"Hello PHP",$red);
ImagePng($img);
ImageDestroy($img);
?>
查看效果请点击 → 透明效果
比较一下不作透明处理的效果 → 不透明效果
这个例子的代码中,倒数第二行(ImagePng($img))为绘制图片,如果是Gif图像格式,则用ImageGif()。最后一句(ImageDestroy($img))的作用是释放给图像分配的内存,这个不能丢掉——任何时候,只要绘制了图像,工作完成后都应该习惯地从内存中将其清除以收回资源。
【说明】
·用于作为图像内容的文字不支持中文或支持的不好;
·Gif图像有版权争端,用时小心;
·以上代码所生成的图片,在Web页里可保存为有效的图形文件。