ArcEngine 加载栅格影像图并建立金字塔

一般情况加载栅格影像图,但没建立金字塔,导致软件卡死~
其实方法很简单,只需添加pRasterPyramid.BuildPyramid(-1, rstResamplingTypes.RSP_NearestNeighbor)即可。
一、方法代码如下:
///
/// 从文件夹中加载栅格数据的静态方法
///
/// 栅格文件的路径
/// 返回加载的栅格IRaster
public static void LoadRasterFromFile(string fullpath, ref IRaster raster)
{
int index = fullpath.LastIndexOf("\");
string path = fullpath.Substring(0, index);
string name = fullpath.Substring(index + 1);
IWorkspaceFactory WorkspaceFactory = new RasterWorkspaceFactoryClass();
IWorkspace Workspace = WorkspaceFactory.OpenFromFile(path, 0);
IRasterWorkspace RasterWorkspace = Workspace as IRasterWorkspace;
IRasterDataset RasterDataset = RasterWorkspace.OpenRasterDataset(name);
IRasterPyramid3 pRasterPyramid = RasterDataset as IRasterPyramid3;
if (pRasterPyramid != null && !pRasterPyramid.Present)
{
FrmWaitProgress frm = new FrmWaitProgress(name+":构建金字塔中…");
frm.Show();
frm.SetText(“构建金字塔,请稍等…”);
Application.DoEvents();
//-1代表创建全部级别的金字塔,0代表删除金字塔,其它代表创建对应级别的金字塔
pRasterPyramid.BuildPyramid(-1, rstResamplingTypes.RSP_NearestNeighbor);
Application.DoEvents();
frm.SetText(name+":金字塔创建成功!");
Application.DoEvents();
frm.Close();
}
raster = RasterDataset.CreateDefaultRaster();
System.Runtime.InteropServices.Marshal.ReleaseComObject(RasterDataset);
System.Runtime.InteropServices.Marshal.ReleaseComObject(RasterWorkspace);
System.Runtime.InteropServices.Marshal.ReleaseComObject(Workspace);
System.Runtime.InteropServices.Marshal.ReleaseComObject(WorkspaceFactory);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值