我使用RenderedImage接口来读取tif图像。 如何在2d-Array中获取此图片的所有rgb值,如下所示:
red[0][128] = 120; // means x=0, y=128, red value = 120
// the value 120 is the value I have to determine (and oall other rgb values)!
有谁知道这个?
非常感谢你的帮助!
答案 0 :(得分:2)
getData()
返回Raster
,其getData()
方法。
您可以致电YourRenderedImage.getData().getPixel(int x, int y, int iArray[])
获取RGB值吗?
JavaDoc:返回指定像素的int数组中的样本。如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。
我相信int
数组返回的元素代表:红色,绿色,蓝色,Alpha和十六进制键,但我不确定。
答案 1 :(得分:0)
与Abboq一样,我认为您想要遍历应该有效的Raster
。或者,您可以使用BandSelect
来获取所需的三个频段中的每一个。
RenderedImage[] dst = new RenderedImage[3];
int[] bandIndices = new int[1];
for (int i = 0; i < 3; i++) {
bandIndices[0] = i;
pb = new ParameterBlock();
pb.addSource(src);
pb.add(bandIndices);
dst[i] = (RenderedImage) JAI.create("bandSelect", pb);
}