我想知道是否有办法创建一个ImageIcon,它是另一个ImageIcon的镜像。创建另一个镜像的ImageIcon
在谷歌搜索,我发现如何使用许多AWT库。
有没有办法与Swing做到这一点?如果没有,我仍然遇到麻烦的AWT方法:
我想镜像的ImageIcon是一个动画gif(包含透明颜色),并且AWT方法返回一个不透明的(透明颜色被更改以不透明的黑色)和非动画gif。
任何想法如何保持动画和透明色?
这里是AWT代码,我发现(rangerStand是原始的ImageIcon):
Image reversed = rangerStand.getImage();
BufferedImage bufferedImage = new BufferedImage(reversed.getWidth(null), reversed.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics gb = bufferedImage.getGraphics();
gb.drawImage(reversed, 0, 0, null);
gb.dispose();
AffineTransform tx = AffineTransform.getScaleInstance(-1, 1);
tx.translate(-reversed.getWidth(null), 0);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
bufferedImage = op.filter(bufferedImage, null);
ImageIcon lol = new ImageIcon(bufferedImage);
this.sprite.setIcon(lol);
感谢您的阅读。
+1原始的方式来解决这个问题 – 2009-11-10 16:04:37
'ImageIcon lolimg = new MirrorImageIcon(“Images/Sprites/Ranger/stand.gif”); \t \t JLabel lolabel = new JLabel(lolimg); \t \t lolabel.setBounds(16,0,16,16); \t \t panel.add(lolabel);' panel = getContentPane()我的JApplet。 JLabel是空的。我究竟做错了什么 ? – 2009-11-10 16:26:34
hm ...我真的不知道...尝试没有手动设置边界和使用布局管理器。也许这将工作。你有没有尝试我的代码?尝试使用图像“Images/Sprites/Ranger/stand.gif”,如果这不起作用,那么其他地方也是错误的... – 2009-11-10 16:30:18