我在Java中加载一张图片,想要将其转换为RGB数组,以便读取每个像素的颜色。我在Google上搜索过,但只找到了如何将Color数组转换为图像。
我在Java中加载一张图片,想要将其转换为RGB数组,以便读取每个像素的颜色。我在Google上搜索过,但只找到了如何将Color数组转换为图像。
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 );
data.length
比 img.width*img.height
大? - Giannis Tzagarakis