有人能解释如何从 BufferedImage 中获取 RGB 值的数组吗?
我有一个灰度图像在 BufferedImage 中,需要提取描述图像的0到255值的数组。
我知道 BufferedImage 正确,因为我可以将其保存为 PNG。但是,如果我使用
我已经搜索了一段时间并看到了一些关于移动某些值的参考(post),但不太理解他们在说什么。
基本上,我想要从 BufferedImage 转换为0到255的 RGB 值数组。
如果需要更多细节,请问清楚明白。
编辑:
@Garbage 感谢提示。我尝试了 int[] dataBuffInt = heightMap.getRGB(0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); 但是得到相同的结果。
@Greg Kopff 结果为2,并且已设置为 TYPE_INT_ARGB。
我有一个灰度图像在 BufferedImage 中,需要提取描述图像的0到255值的数组。
我知道 BufferedImage 正确,因为我可以将其保存为 PNG。但是,如果我使用
int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
,我会得到一堆巨大的负数。我已经搜索了一段时间并看到了一些关于移动某些值的参考(post),但不太理解他们在说什么。
基本上,我想要从 BufferedImage 转换为0到255的 RGB 值数组。
如果需要更多细节,请问清楚明白。
编辑:
@Garbage 感谢提示。我尝试了 int[] dataBuffInt = heightMap.getRGB(0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); 但是得到相同的结果。
@Greg Kopff 结果为2,并且已设置为 TYPE_INT_ARGB。