1
私は2つのImageIconを持っていて、3番目のImageIconを作成したいと思います.nr 2をnr 1に描画します。 どうしたらよいですか?ImageIcon + ImageIcon = ImageIcon
私は2つのImageIconを持っていて、3番目のImageIconを作成したいと思います.nr 2をnr 1に描画します。 どうしたらよいですか?ImageIcon + ImageIcon = ImageIcon
次のコードは、2つのImageIcon
からImage
を取り、新しいImageIcon
を作成します。
第ImageIcon
からの画像は、次いで、得られた画像は新しいImageIcon
を作るために使用され、第一の画像の上に描画される:
Image img1 = imageIcon1.getImage();
Image img2 = imageIcon2.getImage();
BufferedImage resultImage = new BufferedImage(
img1.getWidth(null), img1.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resultImage.createGraphics();
g.drawImage(img1, 0, 0, null);
g.drawImage(img2, 0, 0, null);
g.dispose();
ImageIcon resultImageIcon = new ImageIcon(resultImage);
編集 (加え、いくつかのエラーを修正
BufferedImage.TYPE_INT_ARGB
は、アルファチャンネルを持たないBufferedImage.TYPE_INT_RGB
ではなく、コンストラクタ内のイメージタイプに使用できます。
これはかなり近いです、新しいイメージは、透明なものの代わりに黒い背景を持つようです。 – willcodejavaforfood
タイプをTYPE_4BYTE_ABGRに変更し、それがアルファを世話しました。どうもありがとう – willcodejavaforfood