中文測試檔:
Header (\"Content-type: image/gif\");
$im = imagecreate (400, 30);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 20, 0, 10, 20, $white,
\"/usr/X11R6/lib/X11/fonts/TrueType/moe_kai.ttf\", \"這是中文測試 許\功\蓋\ \");
ImagePng ($im);
ImageDestroy ($im);
?>
以上是 patch source 的做法,或是使用 unicode 也可以讓中文正常的顯示,以下就是 big5 轉 unicode 的做法。
function big52uni($text){
$rtext=\"\";
$table=file(\"big5-uni.txt\");
$max=strlen($text);
for($i=0;$i<$max;$i++){
$h=ord($text[$i]);
$l=ord($text[$i+1]);
if($h>=160 && $i<$max-1){
$uni=ereg_replace(\".{5}([0-9]*)[\\xd|\\xa]\",\"&#\\\\1;\",$table[191*($h-129)+($l-64)]);
$rtext.=$uni;
$i++;
}else{
$rtext.=$text[$i];
}
}
return $rtext;
}
?>
用法的範例如下:
Header(\"Content-type: image/gif\");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
// 以下是輸出標楷體中文,至於中文字形檔位置請根據自己電腦做修改
// 還有big52uni這個function在上面有,請自行複製過去用
// 備註:您必需裝GD及FreeType的套件才能輸出TTF字型
ImageTTFText($im, 20, 0, 10, 20, $white, \"/usr/X11R6/lib/X11/fonts/TrueType/moe_kai.ttf\", big52uni(\"Test中文測試\"));
ImageGif($im);
ImageDestroy($im);
?>
header(\"Content-type: image/jpeg\");
$im = imagecreate(400,30);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
$string = iconv(\"GB2312\", \"UTF-8\", \"我\");
$font = \"c:/windows/fonts/SIMHEI.TTF\";
// Replace path by your own font path
imagettftext($im, 20, 0, 10, 20, $black, $font, $string);
imagejpeg($im);
imagedestroy($im);
?>
|