2011-07-12 19 views
6

我在製作一個unicode僧伽羅語 - 英語翻譯器。當我打印僧伽羅unicode的信字體大小< 100,信未正確呈現。但是當我使用> 100的字體大小時,所有的字母都會呈現平滑。我無法找到爲什麼發生這種情況。在另一方面,所有的僧伽羅Unicode字體做同樣的&這並不是說我使用的字體的錯誤。 An Example is shown here在Java中渲染僧伽羅unicode字體

請幫幫我。

回答

0

我不知道Java在Windows 7上使用自己的字體渲染。因此,它應該是一個Windows錯誤,但如果是這樣的話,你會看到所有Windows應用程序中的問題 - 但你只看到它在Java中。您可能想試試Java 2D API。例如渲染140px字體和0.5縮放Graphics2D得到70像素的字體。

[老答案]

你不是說哪個操作系統,但我的猜測是,這是在Linux上。如果是這樣的話,那麼它可能是因爲在FreeType「字體提示」。

基本上,如果一個字體變得「太小」來渲染,真正的類型文件可以包含「渲染提示」。在你的例子中,你可以看到大字體的邊緣平滑,但小例子更加方形。你可以看到像素;抗鋸齒應該防止這種情況。

所以我的猜測是你是Font Hinting專利的受害者。該專利去年已經過期。嘗試爲您的系統找到更新版本的「freetype」。

+0

這發生在Windows 7操作系統上。當我將所有小寫字母複製到記事本或Web瀏覽器textField中時,它們向我顯示正確的字母。所以我認爲這個問題只會導致java.How下我可以平滑地呈現小字體java.I中的字體同意你的意見,我等待這個答案! – Thusitha

+1

我解決了我的問題......問題是我沒有使用ZWJ字符將2個字符綁定在一起。所以沒有字母組合。當我在java(\ u200d)中使用ZWJ字符時,所有字符都正常渲染。 。任何方面的幫助! – Thusitha