2011-10-19 113 views
3

我有一個圖像TYPE_3BYTE_BGR,我想將它轉換爲TYPE_INT_RGB如何獲取'TYPE_3BYTE_BGR'圖像的RGB值?

雖然我已經搜索過,但我還沒有找到一種方法來做到這一點。我想要逐像素地轉換圖像。但是,似乎BufferedImage.getRGB(i, j)不起作用。

如何獲取TYPE_3BYTE_BGR類型的圖像中的RGB值?

+0

你可以做手工,因爲你是建議,但它會更簡單只是爲了創造與TYPE_INT_RGB目標BufferedImage的,只是繪製源圖像到目標BufferedImage。 – 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; 

How to convert get.rgb(x,y) integer pixel to Color(r,g,b,a) in Java?

+0

我想你可以放心地忽略alpha通道,因爲TYPE_3BYTE_BGR沒有alpha通道。 – I82Much

+0

是的,我這樣解碼,然後設置'setRGB'來繪製TYPE_INT_RGB圖像,但最後我得到兩個不同的圖像。 – user572485

相關問題