谁能解释如何从 BufferedImage 中获取 rgb 值数组?
我在 BufferedImage 中有一个灰度图像,需要提取一个包含 0 到 255 个值的数组来描述图像。
我知道 BufferedImage 是正确的,因为我可以将它保存为 PNG。但是,如果我使用int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
我会得到一堆巨大的负数。
我已经搜索了一段时间,看到了一些关于改变一些值(post)的参考,但并不真正理解他们在说什么。
基本上我想从 BufferedImage 到 0 到 255 个 RBG 值的数组。
我不确定我是否正确解释了自己,请询问更多详细信息。
编辑:
@Garbage 感谢您的提示。我试过 int[] dataBuffInt = heightMap.getRGB(0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); 但得到相同的结果。
@Greg Kopff 结果是 2,它被设置为 TYPE_INT_ARGB