用PHP產生動態的影像圖

很多人不瞭解  php(做為現在的主流開發語言) 可以產生非HTML的資料.這是對產生影像圖非常有用的.可以從 database 產生一個簡單的廣告橫圖或更簡單隻產生一個圖形按鈕 .

我用 TTF 字型在以下的范例中  
我通常取名作 button.php(做為現在的主流開發語言)3:

#######################################################
—–button.php(做為現在的主流開發語言)3——
<?
  Header(“Content-type: image/gif”);
  if(!isset($s)) $s=11;
  $size = imagettfbbox($s,0,”fonts/TIMES.TTF”,$text);
  $dx = abs($size[2]-$size[0]);
  $dy = abs($size[5]-$size[3]);
  $xpad=9;
  $ypad=9;
  $im = imagecreate($dx+$xpad,$dy+$ypad);
  $blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
  $black = ImageColorAllocate($im, 0,0,0);
  $white = ImageColorAllocate($im, 255,255,255);
  ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);
  ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);
  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);
  ImageGif($im);
  ImageDestroy($im);
?>
#######################################################
很重要一點是你不能在這檔案中放任何HTML tags.也不能有空白行在 <?和 ?> tag 之前或之後. 如果你用這段Script後看到一個不完整的影像, 表示你可能在php(做為現在的主流開發語言)標簽以外誤打瞭字元.

以上的 script 可以由此語法在網頁中叫出來: <IMG SRC=”button.php(做為現在的主流開發語言)3?s=36&text=php(做為現在的主流開發語言)+is+Cool”>  

#######################################################
—-test.php(做為現在的主流開發語言)—–  

<html>
<head>
<META HTTP-EQUIV=”content-type” CONTENT=”text/html; charset=gb2312″>
<title>New Page 1</title>
</head>

<body>  

<IMG SRC=”button.php(做為現在的主流開發語言)3?s=36&text=php(做為現在的主流開發語言)+is+Cool”>  

</body>
</html>
#######################################################  

test.php(做為現在的主流開發語言)結果會像這樣: .

s 參數是設定字型大小 .  

這是當 s=18 時:  

註I:
字型路徑 “/fonts/TIMES.TTF” 可由windows/fonts目錄下取得 TIMS.TTF 字型檔 Copy 至你網站的目錄 fonts下即可測試 至於中文的表現 尚待各位網友提供心得  

註意 我先畫瞭一個黑色方塊區再用白色位移產生 3D 效果.也陬L法在淺色背景中看出來 但你可以把背景色改為深色看看此效果. 字型也做瞭同樣效果表現立體感.  

你要先確定你的安裝 php(做為現在的主流開發語言) 時有設定支援  GD 和 TTF. 可參考  php(做為現在的主流開發語言) FAQ . 我建議可以 copy libgd.a 到  /usr/local/lib 和 gd*.h 相關檔案到  /usr/local/include 然後   
make install for FreeTTF library.  

可以在這https://rover.wiesbaden.netsurf.de/~kikita/ 找到釵httf 字型哦!

註:

以下的原始碼改進瞭上面的弁?可多行文字顯示:
#######################################################
————–button.php(做為現在的主流開發語言)—————–
<?

Header(“Content-type: image/jpeg”);
if(!isset($bgred)) $bgred=0;
if(!isset($bggreen)) $bggreen=51;
if(!isset($bgblue)) $bgblue=153;
if(!isset($chred)) $chred=255;
if(!isset($chgreen)) $chgreen=255;
if(!isset($chblue)) $chblue=255;
if(!isset($shadow)) $shadow=”yes”;
if(!isset($wrappos)) $wrappos=20;

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。