약간의 문제가 있습니다. 이미지를 회전 시키면 이미지가 모퉁이에서 잘립니다. 이미지 회전에 다음 코드를 사용하고 있습니다. 그것은 제대로 회전하고 있지만 모든 모서리에서 잘려나 가고 있습니다.회전 후 모서리에서 이미지가 자릅니다.
public static Image rotate(BufferedImage img, double angle) {
int w = img.getWidth();
int h = img.getHeight();
BufferedImage result = new BufferedImage(w, h, img.getType());
Graphics2D g2 = result.createGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, w, h);
g2.rotate(Math.toRadians(angle), w/2, h/2);
g2.drawRenderedImage(img, null);
//g2.drawImage(img,null,0,0);
return result;
}
나는 모서리를 자르지 못하도록하는 것이 필요합니다. 도와주세요.
하지만 어떻게 될까요? 이미지의 크기가 초기 크기와 같아 지도록 (회전 된 이미지의 크기를 줄여야 함) 또는 그려진 이미지의 크기가 초기 크기로 (다소 차이가 있음) 기대합니까? (그래서'Image' 인스턴스가 초기 인스턴스보다 커야합니다)? –
최종 이미지의 크기는 초기 크기와 같아야합니다. 내 요구 사항은 이미지가 회전해야하지만 모양과 느낌이 같아야한다는 것입니다. 그러나 현재 이미지는 구석에서 잘려나 가고 있습니다. – harry
먼저, 모양과 느낌이이 작업과 관련이 없습니다. 둘째, 이미지가 20 x 40 인 구성 요소의 모든 공간을 차지하고 이미지를 90도 회전하면 이미지는 너비가 너무 큰 40 x 20만큼 줄어들어 절단됩니다. 이미지를 재조정하거나 충분히 큰 구성 요소에 페인트해야합니다. – user1803551