我有一个非常简单的图像生成器程序,它只是在BufferedImage上绘制一个圆角矩形,然后将图像保存到文件中。
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绘制矩形时,一切都按预期工作:
然而,当我使用fillRoundRect时,矩形似乎在右侧和底部被裁剪:
我已经尝试使BufferedImage本身更大并保持矩形大小相同,但问题仍然存在。此外,无论我选择什么样的矩形宽度和高度或弧宽和高度,4个角看起来都不一样(虽然它越大,看起来就越不明显)。
这是一个常见的问题,还是我可能误解圆角矩形?
非常感谢任何帮助或建议。
谢谢,
B.J。
答案 0 :(得分:7)
您是否尝试过启用抗锯齿功能?
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);