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"]);
即可