2011-01-31 60 views
3

我有一個非常簡單的圖像生成器程序,它只是在BufferedImage上繪製一個圓角矩形,然後將圖像保存到文件中。fillRoundRect看起來不能正確渲染的問題

try 
{ 
    BufferedImage image = new BufferedImage(40, 40, BufferedImage.TYPE_INT_ARGB); 

    Graphics2D g2 = image.createGraphics(); 
    g2.setPaint(Color.blue); 

    g2.fillRoundRect(0, 0, 39, 39, 6, 6); 

    File file = new File("C:\\test.png"); 

    ImageIO.write(image, "png", file); 
} 
catch(IOException e) 
{ 
    e.printStackTrace(); 
} 

一切正常時,我提請使用drawRoundRect矩形:

enter image description here

然而,當我使用fillRoundRect矩形出現在右邊和下邊要裁剪:

enter image description here

我試過讓BufferedImage本身變大,並保持rec糾結相同的大小,但問題仍然存在。另外,無論我選擇的矩形寬度和高度還是弧寬和高度,4個角不會看起來相同(儘管它越大,看起來就越不明顯)。

這是一個常見問題,或者我也許誤解了圓角矩形?

任何幫助或建議將不勝感激。

感謝,

B.J.

回答

7

您是否嘗試過讓抗鋸齒?

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
+0

是的,工作。我希望這是一個簡單的解決方案。非常感謝你的幫助。 – Benny 2011-01-31 22:07:18