【发布时间】:2013-08-16 13:44:45
【问题描述】:
我正在尝试旋转图像,它在某种程度上可以工作,但问题是它无法正常工作。它没有按照我想要的方式旋转。图像以某种混合形式显示。
我的按钮点击代码:
RT90.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
degrees+=90;
rotateIMG(degrees);
repaint();
}
});
rotateIMG() 代码:
public void rotateIMG(double d)
{
BufferedImage b ;
b=a;
Graphics g;
g=b.createGraphics();
Graphics2D g2d = (Graphics2D)g;
System.out.println(b.getWidth());
System.out.println(b.getHeight());
g2d.rotate(Math.toRadians(d), b.getWidth()/2, b.getHeight()/2);
g2d.drawImage(b,0,0,null);
ImageIcon rtimg = new ImageIcon(b);
label.setIcon(rtimg);
}
知道这段代码中的wrong 是什么吗?
这里a 是从图像堆栈加载的缓冲图像,label 是用于显示图像的JLabel。
【问题讨论】:
-
会不会同时在面板/框架上显示 a 和 b?
-
“图像以某种混合形式显示”对我来说并不是很清楚。你能提供一个屏幕截图吗?当然,SSCCE 也可以。
-
看看this answer是否可以提供帮助
-
是的。问题正是您正在覆盖用作源的图像。
-
一会儿,我将把它作为一个答案。
标签: java swing image-rotation