- PR -

IEで表示されるフォントとJSP・Graphicsで描画するフォントの違いについて

1
投稿者投稿内容
すず
常連さん
会議室デビュー日: 2003/04/17
投稿数: 30
投稿日時: 2004-01-08 10:51
こちらでは初めて投稿いたします、宜しくお願いします。


IE6 Tomcat4.1 j2sdk1.4.0 を使用して
動的なグラフを表示するページを作成しています。

グラフ以外のタイトルとか他の項目についてはHTMLで表示し、
グラフは
<img src="graph.jsp">
という感じでタグを記述して、別途JSPを用意し、その中でGraphicsオブジェクトを生成して描画しています。

この時、HTMLで表示されるフォントとGraphicsオブジェクトのdrawstringで描画されるフォントが微妙に違ってしまうのですが、
これを合わせるにはどのようにすれば宜しいのでしょうか?。

一応、下記のようにMS Pゴシックを使用するようにしてみたのですが、

Font fo = new Font("MS Pゴシック",Font.PLAIN,11);
g2.setFont(fo);

これでも微妙に違ってしまいます。

またグラフの線を描画した時も、線が薄いというかにじんでるというか、
どうも全体的にモヤがかかったようになってしまうのですが・・・。



基本的な事でしたら大変申しわけありませんが、
どなたか御教授くださいませんでしょうか、
調べ方のヒントでもいただければ非常に助かります。

宜しくお願い致します。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-01-08 11:11
引用:

一応、下記のようにMS Pゴシックを使用するようにしてみたのですが、
コード:
Font fo = new Font("MS Pゴシック",Font.PLAIN,11);
g2.setFont(fo);


これでも微妙に違ってしまいます。


Javaの画像描画についてはよく分かっていませんが、Javaのフォントというのはプラットフォーム間の
互換性を保つために、直接はOS上のフォントを利用しないようなやり方になっていたと思います。
具体的には、Javaプログラム内ではフォントを論理名(Serifとか)で指定し、その論理名とOSの
実際のフォントとのマッピングは、JVMの設定ファイル(font.propertiesだっけな?)で行う、
というやり方だったと思います。

ですから、この場合はJVMのフォント設定を変更してSerif(など)をご希望の「MS Pゴシック」に
変更し、Javaプログラム内からはSerif(など)を指定してグラフを描画する、というやり方で
うまく行きませんでしょうか?

引用:

またグラフの線を描画した時も、線が薄いというかにじんでるというか、
どうも全体的にモヤがかかったようになってしまうのですが・・・。


これはアンチエイリアシングが掛かっているからじゃないでしょうか?

もしくは、描画しているグラフィックオブジェクトの大きさとIMGタグの描画領域の設定
(WIDTHとかHEIGHT属性の値)が食い違っていて、グラフ画像が拡大縮小されてしまっているとか。
すず
常連さん
会議室デビュー日: 2003/04/17
投稿数: 30
投稿日時: 2004-01-08 13:43
早いご回答ありがとうございます。

おかげさまでばっちり綺麗になりました。
アンチエイリアスが駄目だったようです、
サンプルプログラムを理解せずそのまま流用してしまっていたので・・・。

プログラムも頭もモヤが晴れました、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)