RenderedImage - > RGB值

时间:2010-02-04 14:26:00

标签: java

我使用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)!

有谁知道这个?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

getData()返回Raster,其getData()方法。

您可以致电YourRenderedImage.getData().getPixel(int x, int y, int iArray[])获取RGB值吗?

JavaDoc:返回指定像素的int数组中的样本。如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。

Raster.getPixel() - JavaDoc

我相信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);
}