fillRoundRect似乎无法正确渲染的问题

3

我有一个非常简单的图像生成程序,它只是在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绘制矩形时,一切都按预期工作:enter image description here。然而,当我使用fillRoundRect时,矩形似乎在右侧和底部被裁剪了:enter image description here。我已经尝试使BufferedImage本身更大并保持矩形的相同大小,但问题仍然存在。无论我选择什么矩形宽度和高度或弧度宽度和高度,4个角永远不会看起来相同(尽管它变得越大,它似乎越不明显)。这是一个常见的问题吗,还是我可能误解了圆角矩形?非常感谢任何帮助或建议。
谢谢,
B.J.
1个回答

8

你尝试启用了抗锯齿吗?

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

是的,那行了。我希望它是一个简单的解决方案。非常感谢你的帮助。 - Benny
@Benny 那是一个简单的解决方案。 - madladzen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接