tif格式或者其他格式的栅格图像包含有Alpha或Black)波段,在有些情况下这个波段没什么作用。比如说要利用GDAL来读取原图像,然后转存为其他格式,在保存的时候需要判断原图像有几个波段,这时Alpha或Black波段就是多余的了,就需要在读取时去掉。
注:可能Alpha波段在某些情况是很重要的,这里我只是根据自己的需求来去掉它。
代码如下:
GDALAllRegister();
GDALDataset *pDataset = ( GDALDataset *)GDALOpen( raw.toStdString().c_str(), GA_ReadOnly);
if ( pDataset == NULL)
{
return false;
}
int nBands = pDataset->GetRasterCount();
//判断是否包含alpha波段
GDALColorInterp ci = GDALGetRasterColorInterpretation( GDALGetRasterBand(pDataset, nBands));
if( ci == GCI_AlphaBand || ci == GCI_BlackBand)
nBands = nBands - 1;