将图像转换为彩色数组

我用Java加载图像并希望转换为RGB数组,这样我就可以读取每个像素的颜色。 我在Google上搜索过,但我只发现了如何将Color-Arrays转换为图像。

以下行说明了API方法的用法:

 BufferedImage bi = ImageIO.read( new File( "image.png" ) ); int[] data = ( (DataBufferInt) bi.getRaster().getDataBuffer() ).getData(); for ( int i = 0 ; i < data.length ; i++ ) { Color c = new Color(data[i]); // RGB is now accessible as c.getRed(); c.getGreen(); c.getBlue(); } 

如果由于颜色模型而遇到问题,请先创建副本

 BufferedImage img2 = new BufferedImage( bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_RGB ); img2.getGraphics().drawImage( bi, 0, 0, null ); 

并在上面的代码中使用img2。