@ひろP

    - Welcome to Hiroshi's Home Page -
    趣味を中心とした個人のホームページです


@ひろP / ホビー / プロフィール / ブックマーク / 掲示板 / アルバム / サイトマップ / memo

▼ ▼ ▼

Linux関連 / OpenBlockSS関連 / 電波時計関連 / GPS関連 / USB関連 / プログラミング

▼ ▼ ▼

インストール及び設定 / 日本語化 / デバイスドライバ / その他

▼ ▼ ▼

RRDTOOL日本語化 / fbtvの日本語対応 / SpamAssassinの日本語対応

RRDTOOL日本語化…

はじめに

RRDTOOLで作成するグラフ中に日本語(漢字)を表示させることを目的とします。(>>サンプル)

今回は、作図時に設定できる文字列について、EUC漢字コードが通り、漢字フォントを表示するようにしたもので、もともと自動で表示しているもの(例えば、"Week"、"Sun"、"Mon"など)については、手をつけていません。

このパッチによる障害等に対して、一切責任を負いません。

入手元

RRDTOOLの本家は、http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/です。

日本語フォントには、東雲ビットマップフォントと、漢字12x10ドットフォントを利用しています。

ソースの解析

まず、フォント出力方法について調べます。

rrdtool-1.0.33には、gd1.3が入っており、文字列の出力には、これが用いられていることがわかりました。

そこで、アルファベットのフォントには、何を使われているかを確認したところ、src/rrd_graph.cの先頭付近で、

#define SmallFont gdLucidaNormal10
#define LargeFont gdLucidaBold12

と宣言されています。

gdLucidaNormal10のフォント情報は、gd1.3/gdlucidan10.cにあり、フォントサイズは6x11です。

また、gdLucidaBold12のフォント情報は、gd1.3/gdlucidab12.cにあり、フォントサイズは7x13です。

RRDTOOLでは固定長フォントを用いているので、漢字の横幅は、アルファベットの整数倍が良いと考えました。

そこで、漢字の横幅を、アルファベットの横幅x2と決めると、このときに必要とされるフォントサイズは、12と14と決まります。

ただし、サイズいっぱいのフォントを用意すると、アルファベットに比べ高さもあり不釣合いとなってしまい、見た目が悪くなってしまったので、それぞれ10と12のフォントを用意し、周囲に空白を入れることにしましました。

次に、フォント出力の処理について調べると、gd.cのgdImageString()、gdImageStringUp()、gdImageString16()及びgdImageStringUp16()で文字列を表示する処理を行っており、そこから、実際に、個々のフォントを出力しているのは、gdImageChar()及びgdImageCharUp()であることがわかります。

今回は、文字列出力関数中で、EUCの漢字コードを見つけたときに、それぞれのサイズに該当する日本語フォントの構造体を渡し、それ用のキャラクタコードに変換、フォント出力関数に渡してやるという処理を、それぞれに追加しました。

詳しくはgd.cを参照してください。

ソース及びパッケージ

rrdtool-1.0.40に対するパッチのみ rrdtool-1.0.33-kanji.patch.gz 356,162 bytes
バイナリパッケージ rrdtool-1.0.40-1.7.3j.i386.rpm 1,278,200 bytes
  rrdtool-devel-1.0.40-1.7.3j.i386.rpm 392,741 bytes
ソースパッケージ rrdtool-1.0.40-1.7.3j.src.rpm 1,493,739 bytes

2002/11/07

現在、最新版は1.0.40です。1.0.40に同梱されているgdも1.3のため、本パッチが適用できます。

(2002/11/07)

RRDTOOL日本語化 / fbtvの日本語対応 / SpamAssassinの日本語対応

▲ ▲ ▲

インストール及び設定 / 日本語化 / デバイスドライバ / その他

▲ ▲ ▲

Linux関連 / OpenBlockSS関連 / 電波時計関連 / GPS関連 / USB関連 / プログラミング

▲ ▲ ▲

@ひろP / ホビー / プロフィール / ブックマーク / 掲示板 / アルバム / サイトマップ / memo

@ひろP

(c) Copyright 1998-2002 Hiroshi OHNO All right reserved.
E-MAIL: hirop0730@hotmail.com / hiroshi@bigfield.com