我面临着一些问题后进行切割。当我旋转图像时,图像在角落被切割。我正在使用下面的代码来旋转图像。它正在正确旋转,但在所有角落都被切断。图像在角落旋转
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'为尺寸为初始一个相同的(使旋转的图像已被缩小),或者你希望绘制的图像具有(更多或更少)的初始大小为最初的一(这样'Image'实例必须比最初的那个大)? – 2014-10-03 08:05:30
最终图像的尺寸应与初始尺寸相同。我的要求是图像应该旋转,但外观应该是相同的。但目前这个形象正在被削减。 – harry 2014-10-03 08:10:57
首先,外观与此无关。其次,如果图像占用20乘40的组件上的所有空间,并且将图像旋转90度,则图像将会增加40乘20,这在宽度上太大,并且将被切割。您必须重新调整图像大小或确保将其绘制在足够大的组件上。 – user1803551 2014-10-03 12:37:49