对栅格图层的保存方法有两种,这里介绍ISaveAs保存栅格图层方法,可以保存为TIFF,PNG,Erdas image文件等。
private void saveMap(IRasterLayer pRasterLayer)
{
string localFilePath;
SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.Filter = "Erdas image文件(*.img)|*.img";
SaveFileDialog1.RestoreDirectory = true;//该对话框在关闭前将目录还原为之前选定的目录
SaveFileDialog1.Title = ("文件另存为");
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
localFilePath = SaveFileDialog1.FileName.ToString(); //获得文件路径
String Path = SaveFileDialog1.FileName;
int Index = curFilePath.LastIndexOf("\\");
string filePath = curFilePath.Substring(0, Index);//打开的文件存储文件夹
string fileName = curFilePath.Substring(Index + 1);//打开的文件名,带后缀
int i = fileName.LastIndexOf(".");
string Name = fileName.Substring(0, i);
// 要保存的图层;
IRaster pRaster = pRasterLayer.Raster;
IRaster2 pRaster2 = pRaster as IRaster2;
IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.OpenFromFile(filePath, 0);//这里应该是输出raster的路径
ISaveAs pSaveAs = pRaster2 as ISaveAs;
pSaveAs.SaveAs(localFilePath, workspace, "img");
//MessageBox.Show("文件已保存到" + localFilePath + "!");
}
}
ISaveAs保存栅格图层
最新推荐文章于 2021-03-17 05:03:27 发布