我有一個圖像TYPE_3BYTE_BGR
,我想將它轉換爲TYPE_INT_RGB
。如何獲取'TYPE_3BYTE_BGR'圖像的RGB值?
雖然我已經搜索過,但我還沒有找到一種方法來做到這一點。我想要逐像素地轉換圖像。但是,似乎BufferedImage.getRGB(i, j)
不起作用。
如何獲取TYPE_3BYTE_BGR
類型的圖像中的RGB值?
我有一個圖像TYPE_3BYTE_BGR
,我想將它轉換爲TYPE_INT_RGB
。如何獲取'TYPE_3BYTE_BGR'圖像的RGB值?
雖然我已經搜索過,但我還沒有找到一種方法來做到這一點。我想要逐像素地轉換圖像。但是,似乎BufferedImage.getRGB(i, j)
不起作用。
如何獲取TYPE_3BYTE_BGR
類型的圖像中的RGB值?
我不確定你的意思是「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?
我想你可以放心地忽略alpha通道,因爲TYPE_3BYTE_BGR沒有alpha通道。 – I82Much
是的,我這樣解碼,然後設置'setRGB'來繪製TYPE_INT_RGB圖像,但最後我得到兩個不同的圖像。 – user572485
你可以做手工,因爲你是建議,但它會更簡單只是爲了創造與TYPE_INT_RGB目標BufferedImage的,只是繪製源圖像到目標BufferedImage。 – MeBigFatGuy
嘗試了你的建議。使用「result.getGraphics()。drawImage(source,0,0,null);」。像素不會返回到結果圖像中。 –