我想知道是否有办法创建一个 ImageIcon,它是另一个 ImageIcon 的镜像。
在 Google 上搜索,我发现如何使用许多 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);
谢谢阅读。