| 運用 ImageTTFText() 抓字 來源:jerry |
中文測試檔:
<?php
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 的做法。
<?php
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;
}
?>
用法的範例如下:
<?php
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);
?>