別の ImageIcon のミラーである ImageIcon を作成する方法があるかどうか知りたいです。
Google で検索すると、多くの AWT ライブラリを使用してそれを行う方法が見つかりました。
Swing でそれを行う方法はありますか? そうでない場合、私はまだ AWT メソッドに問題があります:
ミラーリングしたい ImageIcon はアニメーション GIF (透明色を含む) であり、AWT メソッドは非透明 (透明色が不透明な黒に変更される) および非アニメーション GIF を返します。
アニメーションと透明色を維持する方法はありますか?
これが私が見つけたAWTコードです(元のImageIconはrangerStandです):
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);
読んでくれてありがとう。