java获取图像的所有RGB颜色
到目前为止,我有:
BufferedImage image = ImageIO.read(
new URL("http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png"));
int w = image.getWidth();
int h = image.getHeight();
int[] dataBuffInt = image.getRGB(0, 0, w, h, null, 0, w);
Color c = new Color(dataBuffInt[100]);
System.out.println(c.getRed()); // = (dataBuffInt[100] >> 16) & 0xFF
System.out.println(c.getGreen()); // = (dataBuffInt[100] >> 8) & 0xFF
System.out.println(c.getBlue()); // = (dataBuffInt[100] >> 0) & 0xFF
System.out.println(c.getAlpha()); // = (dataBuffInt[100] >> 24) & 0xFF
早些时候,我尝试将getRed
、getGreen
和getBlue
放在for循环中,但它只显示相同的RGB值。如何获取图像中的所有RGB值?考虑到我想将它们存储在不同的阵列中
# 1 楼答案
您确定在使用
for
循环时,在数组中使用的是索引变量,而不是静态值,如100
吗?当我使用for
循环运行代码时,我会看到不同的值:如果您想要独特的颜色,可以一次构建一个像素集:
或者使用现有代码将数组转储到一个集合中
# 2 楼答案
我不完全清楚这个问题,但假设你指的是唯一的RGB值,只需循环,然后使用java。util。设置保持唯一性的实现
或者如果你指的是单独的组件