大多數人并不了解php3也可以處理非html類型的數據,例如圖象,我們可以用它來建立條型、柱狀、餅圖來反應數據庫的數據,我們也可以用php3來建立好看的圖形按紐。 大多數圖形按紐是用圖象編輯工具完成的,對于對圖象無經驗的程序員來說,這可是一件苦差事,在建立一個站點的時候,按紐的風格大多是統一的,區別在于按紐上的字,為了解除苦惱,我們可以使用ttf字體和php3的圖形函數庫建立一個按紐函數,需要按紐的時候調用一下即可,下面就是程序button.php3:
本函數傳遞兩個參數,$s是字體大小,$text是字,如有空格用+號代替
<?
header( "content-type: image/gif");
//缺省字體大小,未設的話為11
if(!isset($s)) $s=11;
/* 計算ttf文字text所占區域
函數imagettfbbox(字體大小,旋轉角度,字體路徑,字)
傳回一個數組,有八個數組元素
size[0]=左下x坐標
size[1]=左下y坐標
size[2]=右下x坐標
size[3]=右下y坐標
size[4]=右上x坐標
size[5]=右上y坐標
size[4]=左上x坐標
size[5]=左上y坐標
*/
$size = imagettfbbox($s,0, "/fonts/times.ttf",$text);
//取字串的長度和高度絕對值,如是double,abs后還是double,其它abs后變成int類型
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
//為上下左右留出各4個象素左右的空隙,加上一個象素的陰影,共4*2+1=9
$xpad=9;
$ypad=9;
//建立圖象區域
$im = imagecreate($dx+$xpad,$dy+$ypad);
//設置顏色imagecolorallocate(圖象句柄,red,green,blue)三原色
$blue = imagecolorallocate($im, 0x2c,0x6d,0xaf);
$black = imagecolorallocate($im, 0,0,0);
$white = imagecolorallocate($im, 255,255,255);
//繪制矩形imagerectangle(圖象句柄,左上x,左上y,右下x,右下y,顏色)
//繪出陰影
imagerectangle($im,1,1,$dx+$xpad,$dy+$ypad,$black); imagerectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$white); imagerectangle($im,1,1,$dx+$xpad-1,$dy+$ypad-1,$blue);
//寫字體到圖象中
//imagettftext(圖象句柄,字體大小,旋轉角度,字左上x,字左上y,顏色,字體路徑,字)
//繪出陰影
imagettftext($im, $s, 0, (int)($xpad/2)+1, $dy+(int)($ypad/2), $black, "/fonts/times.ttf", $text);
imagettftext($im, $s, 0, (int)($xpad/2), $dy+(int)($ypad/2)-1, $white, "/fonts/times.ttf", $text);
//轉化為gif
imagegif($im);
imagedestroy($im);
?>
注意:不要在這個文件中包含任何html的代碼,同時在<? 和 ?>之間也不能有空行,否則程序將無法正常運行,本函數最終將建立一副圖象。
新聞熱點
疑難解答