1. 功能简介
金字塔可用于改善性能,可以加快栅格数据的显示速度。随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变;目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据格的金字塔创建的功能进行介绍。
2. 功能实现说明
2.1. 实现思路及原理说明
第一步 |
获取要建立金字塔的栅格数据 |
第二步 |
利用BuildPyramid(…)进行建立金字塔 |
2.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IRasterDataset |
GetPyramidLevel() |
获取金字塔级别 |
BuildPyramid(…) |
建立金字塔 |
|
DataSource.DatasetFactory |
OpenRasterDataset (…) |
打开栅格数据集 |
2.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/04数据操作/14栅格数据创建金字塔 |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
视频路径 |
百度云盘地址下/PIE视频教程/04数据操作/14栅格数据创建金字塔.avi |
示例代码 |
|
![]() 1 /// <summary> 2 /// 建立金字塔 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_BuildPyramid_Click(object sender, EventArgs e) 7 { 8 try 9 { 10 OpenFileDialog openFileDialog = new OpenFileDialog(); 11 openFileDialog.Filter = "RasterFile|*.tiff"; 12 if (openFileDialog.ShowDialog() != DialogResult.OK) return; 13 string path = openFileDialog.FileName; 14 IRasterDataset rasterDataSet = DatasetFactory.OpenRasterDataset(path, OpenMode.ReadOnly); 15 int count = rasterDataSet.GetPyramidLevel(); 16 MessageBox.Show("金字塔创建之前的级别为【" + count + "】"); 17 bool bOk = rasterDataSet.BuildPyramid(Convert.ToSingle(0.5), DadaSampleType.CUBIC, null, null); 18 count = rasterDataSet.GetPyramidLevel(); 19 if (bOk) 20 { 21 MessageBox.Show("金字塔创建成功,金字塔创建之后的级别为【" + count + "】"); 22 } 23 else 24 { 25 MessageBox.Show("金字塔创建失败!"); 26 } 27 return; 28 } 29 catch (Exception ex) 30 { 31 MessageBox.Show(ex.ToString(), "创建金字塔失败异常"); 32 } 33 } |
2.4. 示例截图