2016-11-19 3 views
0

バッファされた画像としてロードされた画像にアルファチャンネルが正しく含まれているという問題があります。しかし、パラメータとして渡されると、アルファチャンネルは失われます。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私は壊れた状態でしか画像を表示しませんでしたが、私は別の方法を混乱させて何も変化しませんでした。

+1

mouseAnimation関数でのみ問題が発生します。あなたが言ったように、Javaはポインタだけを使用するので、関数に与えられたイメージは同じです。 – FiReTiTi

+1

ビデオから、 'Color.white'をあなたの' DrawAbsolute'メソッドに渡して、この 'Color'を' Color'パラメータを取る 'drawImage'メソッドの1つに渡します。このメソッドは、まさにあなたが望まないものです。それはあなたが渡す色でアルファを置き換えます... – haraldK

+0

@haraldKコメントありがとうございます。私はいつもそのパラメータが着色のためだと考えました、基本的に白は元の色を保つことでした。私は試しました 新しい色(256,256,256,0) しかし、役に立たないです。しかし、私はこの道を追い続けていきます。 Color.cyanへの変更は、あなたが予測したこととまったく同じでした。 –

答えて

0

これに問題がある人は、私が行ったように絵を描くときにいつも色を付けるように求められている言語から来ています。私は簡単な変更を加えて修正することができました。色パラメータを削除しました。

@haraldKと同様に、他の言語とは異なり、色はイメージの色付けではなく、すべての色をその色に変更しました。

関連する問題