我不知道这是否有帮助,我还没有测试过,但是您可以通过以下方式获取rgb值:
BufferedImage bi=ImageIO.read(new File("C:\\images\\Sunset.jpg"));
int[] pixel;
for (int y = 0; y < bi.getHeight(); y++) {
for (int x = 0; x < bi.getWidth(); x++) {
pixel = bi.getRaster().getPixel(x, y, new int[3]);
System.out.println(pixel[0] + " - " + pixel[1] + " - " + pixel[2] + " - " + (bi.getWidth() * y + x));
}
}
如您所见,您不必在循环内初始化新的颜色。我还按照onemasse的建议反转了宽度/高度循环,以从我已有的数据中检索计数器。
0
获取
BufferedImage
每个像素的RGB值的最快方法是什么?现在,我使用两个
for
循环获取RGB值,如下面的代码所示,但是获取这些值花费的时间太长,因为嵌套循环为我的图像运行了总共479999次。如果我使用16位图像,则该数字会更高!我需要一种更快的方法来获取像素值。
这是我目前正在尝试使用的代码: