GDAL读取并显示16bit图像应该怎么做
BYTE *m_poBandBlockR;
BYTE *m_poBandBlockG;
BYTE *m_poBandBlockB;
//一次性读取
m_poBandBlockR = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);
m_poBandBlockG = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);
m_poBandBlockB = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);
poBand[0]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockB,width,height,pDataType,0,0);
poBand[1]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockG,width,height,pDataType,0,0);
poBand[2]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockR,width,height,pDataType,0,0);
m_p8Data = (LPBYTE)new char[LineBytes*height*3];
for ( i=0; i<height; i++)
{
for ( j=0; j<width; j++)
{
m_p8Data[(height-i-1)*LineBytes + 3*j] = m_poBandBlockR[i*width + j];
m_p8Data[(height-i-1)*LineBytes + 3*j+1] = m_poBandBlockG[i*width + j];
m_p8Data[(height-i-1)*LineBytes + 3*j+2] = m_poBandBlockB[i*width + j];
}
}
上面是读取24位图(pDataType=GDT_Byte)时的操作,那么读取16位图(pDataType=GDT_UInt16)应该怎么读,数据应该做些什么样的处理才能显示出图像,跪求高手解答