|
<p>GDAL合并TIF图片的问题,代码如下,希望高手回答</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:20 -</p>
<p>解决时间:2010-11-19 11:36</p>
<p>double adfGeoTransform[6];</p>
<p>m_GDALDataset = (GDALDataset *)GDALOpen("d:\\1.tif",GA_ReadOnly);</p>
<p>GDALDriver *poDriver = m_GDALDataset->GetDriver();</p>
<p>char ** papszMetadata = poDriver->GetMetadata();</p>
<p>//检测是否支持create函数</p>
<p>/*if( CSLFetchBoolean(papszMetadata,GDAL_DCAP_CREATE, FALSE ) )</p>
<p>AfxMessageBox("支持Create");</p>
<p>if( CSLFetchBoolean( papszMetadata, GDAL_DCAP_CREATECOPY, FALSE ) )</p>
<p>AfxMessageBox("支持CreateCopy");</p>
<p>return;*/</p>
<p>GDALDataset *poDstDS;</p>
<p>poDstDS = poDriver->Create("c:\\1.tif",512,512,m_GDALDataset->GetRasterCount(),GDT_Byte,papszMetadata);</p>
<p>GDALDataset *ptmp = (GDALDataset *)GDALOpen("d:\\2.tif",GA_ReadOnly);</p>
<p>if(poDstDS == NULL)</p>
<p>AfxMessageBox("创建失败!");</p>
<p>//设置图像坐标,缺少这一步,创建的图像用erdas打开将无法正常现实</p>
<p>//double adfGeoTransform1[6]={0,1,0,0,0,1};</p>
<p>poDstDS->SetGeoTransform(adfGeoTransform);</p>
<p>//要考入的内存</p>
<p>BYTE *ppafScan= (BYTE*)CPLMalloc(sizeof(BYTE)*512*512*m_GDALDataset->GetRasterCount());//new BYTE[512*512*m_GDALDataset->GetRasterCount()];</p>
<p>m_GDALDataset->RasterIO(GF_Read,0,0,512,512,ppafScan,512,512,GDT_Byte,m_GDALDataset->GetRasterCount(),0,3,0,1);</p>
<p>poDstDS->RasterIO(GF_Write,0,0,512,512,ppafScan,512,512,GDT_Byte,m_GDALDataset->GetRasterCount(),0,3,0,1);</p>
<p>问题补充:</p>
<p>为什么合并后的图片一片黑?</p>
<p>提问者: qq727791967 - 四级</p>
<p>最佳答案</p>
<p>ppafScan拷贝数据的位置错误!</p>
<p>0</p>
<p>回答者:</p>
<p>zwt1987814 - 三级 2010-11-19 11:36</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>谢谢</p>
|
|