如果想利用双缓存显示gdal读取的图像数据,把图像数据构建成一个gdi+的位图来显示
void CGdalGdiView::OnDraw(CDC* /*pDC*/)
{
CGdalGdiDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if(m_lable)
{ GDALAllRegister();
m_pDataset =(GDALDataset*) GDALOpen("C:\\tiff\\111.tif",GA_ReadOnly );
if(m_pDataset==NULL )
{
AfxMessageBox(_T("文件打开失败!!!"));
return;
}
CRect rect;
GetClientRect(rect);
int dataWidth=m_pDataset->GetRasterXSize();
int dataHeight=m_pDataset->GetRasterYSize();
int dataBands = m_pDataset->GetRasterCount();
int band_list[3] = {3,2,1};
int iSize = GDALGetDataTypeSize(GDT_Byte) / 8;
BYTE* pBuffer = new BYTE[dataWidth*dataHeight*dataBands];
CPLErr err = m_pDataset->RasterIO(GF_Read, 0, 0, dataWidth, dataHeight