1

画像を透明に保つのに問題があります。

imageA.pngという画像があり、それをインポートしたいとしましょう。他のメソッドからアクセスできるようにするために、最初にこれを宣言します。

private BufferedImage imageA;

そしてそれをインポートします:

className(){
    try{
        imageA = ImageIO.read(className.class.getResourceAsStream("floor.png"));
    }catch(IOException ex){
        ex.printStackTrace();
    }
}

paintComponent次に、次のようにメソッドで使用できます。

public void paintComponent(Graphics g){
    g.drawImage(imageA, 0, 0, null);
    //using Graphics.drawImage(Image img, int dstx1, int dsty1, int dstx2, int dsty2,int srcx1, int srcy1, int srcx2, int srcy2, ImageObserver observer) in the real program, don't know if that matters?
}

元の画像に透明な領域があったとしましょうimageA.png。現在は何らかの理由で失われています。少なくとも、私の出力では。この方法で画像を描画するプログラムでは、別の画像の上に描画しますが、元の画像では透明な場所に白が表示されます。これはなぜですか、どうすれば修正できますか?

4

2 に答える 2

1

setOpaque(false)私の推測では、コンポーネント (をオーバーライドするもの) で必要になると思いますpaintComponent(Graphics g)

ImageIO は、画像の透明な部分を透明に保ちます。

于 2013-06-04T20:24:46.223 に答える