如果想利用双缓存显示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, pBuffer, dataWidth, dataHeight, GDT_Byte, band_list, 3,dataWidth*3, 1

在本教程中,我们将展示如何利用GDAL库读取TIFF图像数据,并通过GDI+创建位图进行显示。首先,我们注册GDAL库并打开指定的TIFF文件。接着,获取图像的宽度、高度、通道数,然后读取图像数据到缓冲区。使用这些数据,我们创建一个GDI+的Bitmap对象,并在设备上下文上绘制该位图,从而实现在界面上显示图像。
最低0.47元/天 解锁文章
710

被折叠的 条评论
为什么被折叠?



