【发布时间】:2013-11-28 01:27:08
【问题描述】:
当我使用Graphics2D.rotate() 旋转图像时,显然会在角落留下一些空白空间。空的角落变成透明的。
我希望我的程序旋转 BufferedImage 并用白色填充剩余的空角。
我该怎么做?
换句话说,我想旋转图像,同时为整个图像保留白色背景。
这是我的功能:
public BufferedImage rotateImage(BufferedImage image, double degreesAngle) {
int w = image.getWidth();
int h = image.getHeight();
BufferedImage result = new BufferedImage(w, h, image.getType());
Graphics2D g2 = result.createGraphics();
g2.rotate(Math.toRadians(degreesAngle), w/2, h/2);
g2.drawImage(image,null,0,0);
return result;
}
然后,我使用此图像将其绘制为透明的 JPanel,然后将其添加到 JLayeredPane。
但是,我的图像有透明角,我想用白色填充它们。
【问题讨论】:
-
这取决于你在旋转什么图像?
JComponent?JPanel?你如何旋转图像......一个例子会很好...... -
我独立旋转图像并将其保存为 BufferedImage,然后我将其绘制到 JPanel 上。
标签: java background bufferedimage