2008/04/30(水)[php] imagettftext
imagettftextはUTF-8で文字列を渡す必要があります.そのため,mb_convert_encoding($str, 'UTF-8')などであらかじめエンコードしておく必要があります.
$str = 'ほげほげ'; $str = mb_convert_encoding($str, 'UTF-8'); imagettftext($image, 10.5, 0, 0, 0, $color['black'], $font, $str);
が,[JIS-mapped Japanese Font Support]がサポートされている時は,内部で勝手にエンコードを変換してくれるため,エンコードしておく必要はありません.というより,'UTF-8'でエンコード済みの文字列を渡すと化けます.なので,文字列が'UTF-8'の場合,意図的に'SJIS'に変換してから渡す必要があります.
$str = 'ほげほげ'; $str = mb_convert_encoding($str, 'SJIS'); imagettftext($image, 10.5, 0, 0, 0, $color['black'], $font, $str);
この[JIS-mapped Japanese Font Support]ですが,gd_info関数で組み込まれているが調べることができます.
$info = gd_info(); if($info['JIS-mapped Japanese Font Support']){ // 組み込まれている }
以下,検索用キーワード
[imagefttext] [imageffttext] [GD] [PHP] [UTF-8] [SJIS] [JIS-mapped Japanese Font Support] [gd_info] [文字化け]