2016-07-04 4 views
2

ペイントXPまたはペイントWindows 8では、テキストを書き込むと、プログラムは自動的にフォントの品質を向上させます(少なくとも財政的なプリンターの場合)。以下の同じJavaコードでこれを行う方法を知りたいと思います。GraphicsのdrawStringメソッドのフォント品質を上げる方法は?

まず、私が何を意味するかを確認するには、この画像を見て:

Text Quality Example

BufferedImage image = ImageIO.read(new File("blankdocument.bmp")); 
Graphics g = ((BufferedImage) image).getGraphics(); 

Font helvetica = new Font("Lucida Sans Unicode", Font.PLAIN, 13); 
g.setColor(Color.black); 
g.setFont(helvetica); 

g.drawString("TEXT WRITING EXAMPLE.", 5, 10); 
ImageIO.write(image, "PNG", new File("testx.PNG")); 
image.flush(); 

答えて

2

あなたはアンチエイリアシングをオンにすることができます。 Controlling Rendering Qualityから、

設定または変更する描画ヒントがGraphics2Dコンテキストで属性、RenderingHintsオブジェクトを構築し、setRenderingHints方法を使用してGraphics2Dにそれを渡すために。ヒントを1つだけ設定したい場合は、Graphics2DsetRenderingHintを呼び出し、設定するヒントのキーと値のペアを指定します。 (キーと値のペアをRenderingHintsクラスで定義されています。)

Graphics2D g2 = (Graphics2D) g; 
RenderingHints rh = new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING, 
      RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
g2.setRenderingHints(rh); 
+0

ありがとう、非常によくエリオット。 –

+0

それを増やす方法はありますか? xD –

+0

私は、 "_LCD_HRGB"(置き換え:RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB)、 良い、より多くの質問は、ありがとう! –

0

あなたはAnti-aliasingをオンにする必要があります。 javaのアンチエイリアスは次のように有効にすることができます:

// this is the same as getGraphics() but returns a Graphics2D instead. 
Graphics2D g2 = image.createGraphics(); 

RenderingHints rh = new RenderingHints(
    RenderingHints.KEY_TEXT_ANTIALIASING, 
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
g2.setRenderingHints(rh); 
関連する問題