運用 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);
    ?>

小恐龍工作坊 提供