gdライブラリで日本語フォントを使用するには?
[上に]
[前に]
[次に]
やましゅう。
[E-Mail]
2000/01/26(水) 20:40:55
gdを使って、グラフを作成しようとしているのですが、
どこを探しても、日本語フォントの使い方が見つかりません。
どなたかご存知の方がいませんか?
やましゅう。
2000/01/26(水) 20:42:19
追加:
ちなみに、perlを使っています。
B-Cus
2000/01/27(木) 00:37:48
めんどくさい方法ですが、もし日本語版が存在しなかったら
参考にして下さい。VFlib や FreeType などがインストール
されていないサーバでも使える方法としては、こういうのしかないと思う。
文字コードを JIS (ISO-2022-JP) に修正。例えば「あ」は 0x24 0x22。
で、bdf 形式のフォントファイルを入手し、
0x24 0x22 に相当する部分を探す。具体的には以下の部分。
STARTCHAR 2422
ENCODING 9250
SWIDTH 96 0
DWIDTH 16 0
BBX 16 16 0 -2
BITMAP
0200
0200
3FF8
0400
0440
07F0
1C5C
3444
2446
6482
4482
4506
4604
381C
0070
0000
ENDCHAR
で、以下のようにしてビットデータに変換。
%table=(
0=>'0000',1=>'0001',2=>'0010',3=>'0011',
4=>'0100',5=>'0101',6=>'0110',7=>'0111',
8=>'1000',9=>'1001',A=>'1010',B=>'1011',
C=>'1100',D=>'1101',E=>'1110',F=>'1111',
); # 手抜き。
$data = <<END;
0200
0200
3FF8
0400
0440
07F0
1C5C
3444
2446
6482
4482
4506
4604
381C
0070
0000
END
foreach ( split(/\n/,$data) ){
foreach (split(//,$_)){
print "$table{$_}";
}
print "\n";
}
そしたら、以下のようにフォントデータが入手できるので、
1の部分にポチポチ点を打てばOK。
0000001000000000
0000001000000000
0011111111111000
0000010000000000
0000010001000000
0000011111110000
0001110001011100
0011010001000100
0010010001000110
0110010010000010
0100010010000010
0100010100000110
0100011000000100
0011100000011100
0000000001110000
0000000000000000
bdf フォントは、
ftp://ftp.jp.freebsd.org/pub/XFree86/3.3.6/source/X336src-2.tgz
の中の xc/fonts/bdf/misc/ にあります。jiskan16.bdf が 16ドット。
k14.bdf が 14ドット。jiskan24.bdf が24ドット。
B-Cus
2000/01/27(木) 00:44:28
ちなみに、gd 自体には既に日本語フォントを使える仕組みが
入っています。ただし、TrueType サーバがないとダメなような
気がしますが、詳しくはわかりません (FreeType と 日本語
TrueType フォントがインストールされていれば OK?)。
あと、perl の GD モジュールで日本語フォントが使えるのか
どうかは知りません。
やましゅう。
2000/01/27(木) 16:05:05
回答ありがとうございます。
自分には、ちょっと難しいレベルですが、管理者と相談して色々と試してみます。
それでもわからなかったら、またお願いします。
[上に]
[前に]
[次に]