[kansaipm] GD で TTF を使うと文字化けしてしまいます

takimoto takimoto at miki-net.or.jp
Sun Jun 2 15:09:25 CDT 2002


TAKIです

hideki_kimata at mail.goo.ne.jp wrote:
>ここで、TTFを描画したいのですが、1バイト文字すら文字化けしてしまいます。 
>環境はwindows98 or windowsNT4.0 
>activeperl(v5.6.1build) GD(1.27) GD::Graph(1.33) 
>です。 

キマタさんのスクリプトを動かしてみました.
私の環境では,ちゃんとTTFで描けました.環境の違いはOSがWinXPなだけです.
# この際 GD::Graph は関係ないです.

>また、日本語も UTF8に変換すれば描画できるようなことがwebに書いてあった 
>ので、こちらの情報もお持ちであればご教授願います。 

UTF-8に変換すれば描画できるんですね・・・
ということで変換してやってみました.
ふ〜ん OKですね 日本語もイケます.知らなかったです.
ちなみに 私の動かしたスクリプトは キマタさんのスクリプトをちょっと変更し
て以下のようにしてみました.
基本的には同じでしょうから,文字化けの回答にはなってませんが...

あ,それと Jcode.pm をWinな環境に入れるのはめんどうくさそうなので,とり
あえずソースごとエディタで UTF-8 でセーブしてから実行してみました.
# Jcode.pm をWinな環境に入れるにはどうしたらいいんだろう???

use GD; 

$im = new GD::Image(400,250); 

($white,$black,$red,$blue,$yellow) = 
( 
	$im->colorAllocate(255, 255, 255), 
	$im->colorAllocate(0, 0, 0), 
	$im->colorAllocate(255, 0, 0), 
	$im->colorAllocate(0,0,255), 
	$im->colorAllocate(255,250,205) 
); 
$im->interlaced(1); # cool venetian blinds effect 

#$font = "c:\\windows\\fonts\\arial.ttf"; 
$font = "c:\\windows\\fonts\\MSGOTHIC.TTC"; 

# Some TTFs 
$im->stringTTF($black,$font,18.0,0.0,20,20,"Hello") || die $@; 
$im->stringTTF($red,$font,14.0,0.0,20,80,"How are you")|| die $@;; 
$im->stringTTF($blue,$font,30.0,-0.2,60,130,"hello world!!")|| die $@;; 

$japanese = 'Japanese日本語フォントOK!';
$im->stringTTF($red,$font,14.0,0.0,20,100,$japanese)|| die $@;; 


open(FILE,">ttf.png"); 
binmode FILE; 
print FILE $im->png; 
close(FILE); 


   瀧本  満  "TAKI"    takimoto at miki-net.or.jp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ttf.png
Type: image/png
Size: 3459 bytes
Desc: not available
Url : http://mail.pm.org/archives/kansai-pm/attachments/20020603/ef2e52ce/ttf.png


More information about the Kansai-pm mailing list