2012-03-08 10 views
3

は、私はこのような透明ピクセルを持つBufferedImage作成する場所の問題を持っているように見える:JavaのバッファイメージRescaleOp透明性の問題

BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB); 

を、私はそれを暗くするRescaleOpを通してそれをフィルタリングするまで、それが正常に動作します。私がこれをすると、イメージは消える。ここに私の完全なコードは、あなたが私はこれを設定していますどのように見ることができるだけのようです:

BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g = buff.createGraphics(); 
    g.drawImage(i, 0, 0, null); 
    g.dispose(); 
    RescaleOp filter = new RescaleOp(lightlevel, 0f, null); 
    buff = filter.filter(buff, null); 

私の質問は、私はこの問題を解決しますどのようにバッファリングされた画像は、そのピクセルが透明性に影響を与えずに暗くなりますか?

答えて

2

あなたがアルファを扱うRescaleOpは、hereを例示してみてください、と全ての色成分に対して同じlightLevelを使用することができます。

+0

オフセットがない場合を除いて、同じ正確なものはありませんか? – MrDrProfessorTyler

+0

私はそれが動作する方法を参照してください。ありがとう! – MrDrProfessorTyler

+0

よろしくお願いいたします。満足している場合は、[空のチェックマーク](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)をクリックしてこの回答を受け入れることができます。 )を左に置いてください。 – trashgod