2011-07-12 7 views
6

私はユニコード・シンハラ・イングリッシュ・トランスレータを作っています。フォントサイズが<のSinhalaユニコード文字を印刷すると、文字が正しくレンダリングされません。しかし、フォントサイズ> 100を使用すると、すべての文字が円滑にレンダリングされます。私はなぜこれが起こっているのか分かりません。一方、すべてのシンハラのユニコードフォントは同じです&それは私が使用したフォントのバグではありません。 An Example is shown hereJavaのシンハラ・ユニコード・フォントをレンダリングする

私を助けてください。

答えて

0

私はJavaがWindows 7で独自のフォントレンダリングを使用していることに気づいていません。Windowsバグでなければなりませんが、その場合、すべてのWindowsアプリケーションで問題が発生します。 Javaで。

Java 2D APIをお試しください。たとえば、フォントを140pxでレンダリングし、Graphics2Dを0.5倍にして70pxフォントを取得します。

[旧解答]

あなたはどのOSを言っていないが、私の推測では、これはLinux上であるということです。その場合は、FreeTypeの「フォントヒント」が原因である可能性があります。

基本的に、フォントが「小さすぎて」レンダリングされない場合、真のタイプファイルには「レンダリングヒント」が含まれることがあります。あなたの例では、大きいフォントは滑らかなエッジを持っていますが、小さな例はより正方形であることがわかります。あなたはピクセルを見ることができます。アンチエイリアスはそれを防ぐ必要があります。

私はあなたがFont Hinting特許の被害者であると推測しています。問題の特許は昨年失効した。あなたのシステムのために新しいバージョンの "freetype"を探してみてください。

+0

これはWindows 7で起こっていますos.Whenすべての小さな文字をメモ帳やWebブラウザのtextFieldにコピーしました。これらの文字は正しい文字を表示します。この問題はjava.Howの下でのみ発生します。 java.Iのフォントはあなたの意見に同意します。&私はこれに対する答えを待っています! – Thusitha

+1

私は私の問題を解決しました...問題は、2つの文字を結合するZWJ文字を使用しなかったことです。文字との組み合わせはありません。私はjava(\ u200d)でZWJ文字を使用すると、何とか助けを求めるthnks! – Thusitha

関連する問題