2011-01-31 3 views
3

BufferedImage에 둥근 사각형을 그리고서 이미지를 파일에 저장하는 매우 간단한 이미지 생성기 프로그램이 있습니다.fillRoundRect가 올바르게 렌더링되지 않는 문제가 발생했습니다.

: 나는 fillRoundRect를 사용할 때

enter image description here 그러나

, 사각형 오른쪽과 아래쪽에 잘려서 나타납니다 예상대로 나는 것은 drawRoundRect를 사용하여 사각형을 그릴 때마다

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(); 
} 

모든 작동

enter image description here

나는 BufferedImage 자체를 더 크게 만들고 rec 같은 크기가 엉키지 만 문제는 여전히 존재합니다. 또한 어떤 직사각형 너비와 높이 또는 호 폭과 높이를 선택하더라도 네 모서리는 똑같이 보이지 않습니다. (더 커질수록 덜 뚜렷하게 보입니다.)

이것은 일반적인 문제입니까, 아니면 둥근 사각형을 오해 한 것입니까?

도움이나 제안 사항을 보내 주시면 감사하겠습니다.

감사합니다,

비제이

답변

7

는 안티 앨리어싱을 활성화하려고 했습니까?

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

예. 나는 그것이 단순한 해결책 이었으면 좋겠다. 도와 줘서 고마워. – Benny

관련 문제