3

我在 Java 中加载图像并希望将其转换为 RGB 数组,以便读取每个像素的颜色。我在谷歌上搜索,但我只找到了如何将颜色数组转换为图像。

4

1 回答 1

3

以下几行说明了 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 。

于 2013-04-08T14:35:44.417 回答