2009-08-06 3 views

답변

7

는 GDAL에 C#을 바인딩에 사용할 수 ReadAsArray 기능의 동등한 없습니다. GDAL Python 바인딩은 NumPy에 정의 된 배열 프로토콜과 함께 사용할 수 있으므로이 함수가이 특정 목적을 위해 존재하기 때문에 ReadAsArray를 사용할 수 있습니다.

그러나, 1 차원 배열로 화소를 판독하고 2 차원 배열 있다는 그러한 1 차원 배열을 반복 밴드 ReadRaster 클래스의 방법을 사용할 수있다.

의 당신이 width x height 치수 밴드의 픽셀을 읽어 가정 해 봅시다 : column + row * width

for (int col = 0; col < width; col++) 
{ 
    for (int row = 0; row < height; row++) 
    { 
     // equivalent to bits[col][row] if bits is 2-dimension array 

     byte pixel = bits[col + row * width]; 
    } 
} 
:이 공식에 따라 픽셀의 인덱스를 산출 할 수있다, 지금

byte[] bits = new byte[width * height]; 
band.ReadRaster(0, 0, width, height, bits, width, height, 0, 0);