java2d抗鋸齒處理

Windows下的 ClearType 能使字體看上去更平滑,但似乎對於 java 小程序裏面的文字沒有作用。不過可以用 Java 2D API 提供的文本處理功能進行美化。Java 2D API 的文本功能包括:

使用抗鋸齒處理和微調(hinting)以達到更好的輸出質量
可以使用系統安裝的所有字體
可以將對圖形對象的操作(旋轉、縮放、着色、剪切等等)應用到文本上。
支持向字符串添加內嵌屬性(如字體、尺寸、深淺,甚至圖像)
支持雙向文本(啓用從右到左的字符順序,就象您在阿拉伯語和希伯來語中可能遇到的一樣)
第一光標和第二光標能夠瀏覽同時包含從右到左和從左到右字符順序的文本。
先進的字體度量功能,超過舊的 java.awt.FontMetrics 類中的相應功能
排版功能可以實現單詞換行和調整多行文本
這個 API 的核心是由 java.awt.Graphics2D 類提供的,該類是 java.awt.Graphics 的一個子類。API 的其它部分由 java.awt 層次結構中的其它包提供,包括 java.awt.color 、 java.awt.font 和 java.awt.geom 。對 Graphics2D 使用 setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 以達到邊緣平滑的效果
//文字可以用java.awt.Graphics2D類抗鋸齒!
public void paint(Graphics g) {
      if(g instanceof Graphics2D){
             Graphics2D g2d=(Graphics2D)g;//Graphics2D是Graphics的子類
             //抗鋸齒,繪製質量等可參考RenderingHints類的文檔!
             g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
     }
}

字體粗可以顯示正常,但字體愈小就會出現模糊。
發佈了16 篇原創文章 · 獲贊 0 · 訪問量 1231
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章