gpt4 book ai didi

java - 获取图像的所有 RGB 颜色

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:40 25 4
gpt4 key购买 nike

到目前为止我有这个:

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

之前,我尝试将 getRedgetGreengetBlue 放入 for 循环中,但它只显示相同的 RGB 值。如何获取图像中的所有 RGB 值?鉴于我想将它们存储在不同的数组中。

最佳答案

我对这个问题并不完全清楚,但假设你的意思是唯一的RGB值,只是循环,并且只是使用保持唯一性的java.util.Set实现?

Set<Color> colors = new HashSet<Color>();
for (int datum : dataBuffInt) {
colors.add(new Color(datum));
}
System.out.println(String.format("%d different colors", colors.size()));

或者如果您指的是单独的组件?

for (int datum : dataBuffInt) {
Color color = new Color(datum);
reds.add(color.getRed());
greens.add(color.getGreen());
blues.add(color.getBlue());

}
System.out.println(String.format("reds: %d greens: %d blues: %d", reds.size(), greens.size(), blues.size()));

关于java - 获取图像的所有 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com