バッファされた画像としてロードされた画像にアルファチャンネルが正しく含まれているという問題があります。しかし、パラメータとして渡されると、アルファチャンネルは失われます。BufferedImageがパラメータとして渡されたときにアルファを失う
私はこのようなイメージの中にロードします。
MousePointer = ImageIO.read(getClass().getResourceAsStream("sprites/Mouse-sheet.png"));
それから私はこのように描く(アルファチャンネルはそのまま残ります):
g.drawImage(Sprites.MousePointer, mouse.x, mouse.y, 64, 64, null);
をしかし、私は私自身の機能を使用して描画し、アルファチャンネルが失われました:
mouseAnimation.DrawAbsolute(Sprites.MousePointer, g, mouse.x, mouse.y, 4, 4, deltaTime);
なぜアルファチャンネルが失われているのですか?Java変数はポインタなので通過しますそれは理にかなっていないのですか?それを防ぐために私は何ができますか?
ここで結果を見ることができます:YouTube video私は壊れた状態でしか画像を表示しませんでしたが、私は別の方法を混乱させて何も変化しませんでした。
mouseAnimation関数でのみ問題が発生します。あなたが言ったように、Javaはポインタだけを使用するので、関数に与えられたイメージは同じです。 – FiReTiTi
ビデオから、 'Color.white'をあなたの' DrawAbsolute'メソッドに渡して、この 'Color'を' Color'パラメータを取る 'drawImage'メソッドの1つに渡します。このメソッドは、まさにあなたが望まないものです。それはあなたが渡す色でアルファを置き換えます... – haraldK
@haraldKコメントありがとうございます。私はいつもそのパラメータが着色のためだと考えました、基本的に白は元の色を保つことでした。私は試しました 新しい色(256,256,256,0) しかし、役に立たないです。しかし、私はこの道を追い続けていきます。 Color.cyanへの変更は、あなたが予測したこととまったく同じでした。 –