У меня есть очень простая программа для создания изображений, которая просто рисует скругленный прямоугольник на 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 угла никогда не будут выглядеть одинаково (хотя чем больше размер, тем менее выраженным он кажется).
Это обычное явление?проблема, или я, возможно, неправильно понимаю закругленный прямоугольник?
Любая помощь или предложения будут высоко оценены.
Спасибо,
BJ