ImageTTFText函数实现
PHP图像加文字水印功能
一个ImageTTFText函数包含了如下的参数
imagettftext(image,size,angle,x,y,color,fontfile,text)
意思是imagettftext()将字符串text画到image所代表的图像上
,从坐标x
,y(左上角为0,0)开始,角度为angle,颜色为color,使用fontfile所指定的TrueType字体文件
。根据
PHP所使用的GD库的不同,如果fontfile没有以'/'开头,则'.ttf'将被加到文件名之后并且会搜索库定义字体路径
。 由x,y所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和imagestring()不同,其x,y定义了第一个字符的右上角。
angle以角度表示,0度为从左向右阅读文本(3点钟方向),更高的值表示逆时针方向(即如果值为90则表示从下向上阅读文本)。
fontfile是想要使用的TrueType字体的文件名。
text是文本字符串,可以包含UTF-8字符序列(形式为:{)来访问字体中超过前255个的字符。
color是颜色的索引值。使用某颜色索引值的负值具有关闭防混色的效果
例如下面的img.php源码,应用则可使用为<imgsrc="img.php">
====================img.php
<?php
Header("Content-type:image/png");
/*通知浏览器,要输出图像*/
//$im=imagecreate(400,300);
/*如果没有指定图像,可以自定义图像的大小*/
$im=imagecreatefromjpeg("gd04.jpg");
$pink=ImageColorAllocate($im,0,0,0);
$fontfile="C:WINDOWSFonts方正静蕾简体.ttf";
/*$fontfile字体的路径,视操作系统而定,可以是simhei.ttf(黑体),SIMKAI.TTF(楷体),SIMFANG.TTF(仿宋),SIMSUN.TTC(宋体&新宋体)等GD支持的中文字体*/
$str=iconv('GB2312','UTF-8','你想要的字符水印');
/*将gb2312的字符集转换成UTF-8的字符*/
ImageTTFText($im,25,10,140,240,$pink,$fontfile,$str);
/*加入中文水印*/
Imagepng($im);
ImageDestroy($im);
?>
如果需要做成动态URL的水印,则将
$str=iconv('GB2312','UTF-8','你想要的字符水印');
替换使用
$str=iconv('GB2312','UTF-8',$_REQUEST["id"]);
即可