2011-10-19 14 views
3

私はTYPE_3BYTE_BGRの画像を持っていて、それをTYPE_INT_RGBに変換したいと思います。'TYPE_3BYTE_BGR'画像のRGB値を取得するにはどうすればよいですか?

私は検索しましたが、これを行う方法が見つかりませんでした。画像をピクセル単位で変換したい。しかし、BufferedImage.getRGB(i, j)が動作しないようです。

タイプTYPE_3BYTE_BGRの画像でRGB値を取得するにはどうすればよいですか?

+0

を参照してください。 – MeBigFatGuy

+0

あなたの提案をお試しください。 "result.getGraphics()。drawImage(source、0、0、null);"を使用します。結果画像でピクセルが元に戻りません。 –

答えて

2

"getRGB(i、j)が機能しません"という意味が不明です。 getRGBはパックされたintを返します。それをデコードする必要があります。

int color = image.getRGB(i,j); 
int r = (argb)&0xFF; 
int g = (argb>>8)&0xFF; 
int b = (argb>>16)&0xFF; 
int a = (argb>>24)&0xFF; 

あなたが提案しているが、ただTYPE_INT_RGBでターゲットBufferedImageを作成するためにはるかに簡単だろう、とだけ先BufferedImageに元画像を描画するように手動でそれを行うことができますHow to convert get.rgb(x,y) integer pixel to Color(r,g,b,a) in Java?

+0

TYPE_3BYTE_BGRにはアルファチャンネルがないので、アルファチャンネルを無視しても問題ありません。 – I82Much

+0

はい、私はこのようにデコードし、TYPE_INT_RGBイメージを描画するために 'setRGB'を設定しますが、最後に2つの異なるイメージを取得します。 – user572485

関連する問題