任何人都可以解释如何从BufferedImage获取rgb值的数组吗?获取BufferedImage的RGB
我在BufferedImage中有一个灰度图像,需要提取一个描述图像的0到255值的数组。
我知道BufferedImage是正确的,因为我可以将它保存到PNG。但是,如果我使用int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
,我会得到一堆巨大的负数。
我已经搜索了一段时间,看到一些提及转移一些值(post),但不真正明白他们在说什么。
基本上我想从一个BufferedImage去一个0到255个RBG值的数组。
我不确定我是否正确解释自己,plaese询问更多细节是需要的。
编辑:
@Garbage谢谢你的提示。我试过int [] dataBuffInt = heightMap.getRGB(0,0,heightMap.getWidth(),heightMap.getHeight(),null,0,heightMap.getWidth());但获得相同的结果。
@格雷格Kopff结果为2,它被设置为TYPE_INT_ARGB
BufferedImage.getType()的结果是什么? –
您是否尝试过http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html#getRGB%28int,%20int,%20int,%20int,%20int [], %20int,%20int%29 – Garbage
@垃圾感谢您的提示。我试过int [] dataBuffInt = heightMap.getRGB(0,0,heightMap.getWidth(),heightMap.getHeight(),null,0,heightMap.getWidth());但获得相同的结果。 – kotoko