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 源码,应用则可使用为 <img src="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:\WINDOWS\Fonts\方正静蕾简体.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"]);
即可