使用GDAL读取影像

6 篇文章 0 订阅
//把影像读入到内存空间
//把影像读到内存中
/**
* @brief	ReadImageToBuff.
* 把数据从内存中输出到文件中
* @created:	2012/03/25
* @author:	Zhengwen.Fu
* @param 	inputFileName		目标文件路径
* @param 	pImageBuf			内存块指针
* @exception 	无
* @return 	0	成功
* @return 	-1	内存分配失败
* @return 	-4	读取数据失败
* @note 	
* @remarks 	
* @history:	1.Created by Zhengwen.Fu on 3 25th,2012.      	
*/
int ReadImageToBuff(const char* inputFileName,float *&pImageBuf) throw()
{
	GDALAllRegister();         //利用GDAL读取图片,先要进行注册
	CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");   //设置支持中文路径

	//准备读取图片
	GDALDataset *ReadDataSet=(GDALDataset*)GDALOpen(inputFileName,GA_ReadOnly);

	int width=ReadDataSet->GetRasterXSize();  
	int height=ReadDataSet->GetRasterYSize();	
	int bandCount=ReadDataSet->GetRasterCount();

	pImageBuf = NULL;
	pImageBuf=new(std::nothrow) float[width*height*bandCount];
	if(NULL==pImageBuf)
	{
		delete ReadDataSet;ReadDataSet=NULL;
		return -1;
	}

	if(ReadDataSet->RasterIO(GF_Read,0,0,width,height,pImageBuf,width,height,GDT_Float32,bandCount,NULL,0,0,0)==CE_Failure )
	{
		delete ReadDataSet;ReadDataSet=NULL;
		delete[] pImageBuf;pImageBuf=NULL;
		return -4;
	}
	delete ReadDataSet;ReadDataSet=NULL;
	return 0;
}

//用法:
float *pImg=NULL;
ReadImageToBuff("C:\\Test.tif",pImg);
//...

if(pImg!=NULL) 
{
	delete[] pImg;
	pImg = NULL;
{


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝静音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值