TIIF格式的影像并不能创建金字塔,创建之后数据都是0(至少我尝试的是这样)。
以下是创建代码:
const char *pszResampling = "nearest"; //采样方式
GDALProgressFunc pfnProgress = GDALDummyProgress;//进度条
int OverviewList[3]={4,8,16};
//第五个参数是需要创建金字塔的波段数目,设置为0表示给所有波段创建金字塔
//第六个参数是波段列表
if(GDALBuildOverviews( pIODataset,pszResampling, 3, OverviewList,
0, NULL, pfnProgress, NULL ) != CE_None)
{
//创建失败!
}
创建之后要获得指定波段指定层的数据:
pRasterBand = pIODataset->GetRasterBand(1);//第一波段
GDALRasterBand *pRasterBand2;
pRasterBand2 = pRasterBand ->GetOverview(0);//第零层
然后就可以通过pRasterBand->RasterIO获得像素数据了。
函数原型: