1. 功能简介
栅格数据拉伸渲染是对指定的波段进行图像拉伸,并设置拉伸之后的颜色带,根据像元值和颜色带进行数据渲染。
2. 功能实现说明
2.1. 实现思路及原理说明
第一步 | 实例化拉伸渲染对象示例 |
第二步 | 设置要拉伸的波段索引号 |
第三步 | 设置拉伸后的颜色 |
第四步 | 栅格渲染接口转换 |
第五步 | 栅格图层渲染赋值 |
2.2. 核心接口与方法
接口/类 | 方法 | 说明 |
Carto. IRasterStretchColorRampRender | BandIndex | 波段索引 |
ClassColors | 颜色集合 | |
Display.IAlgorithmicColorRamp | FromColor | 源颜色 |
ToColor | 目标颜色 | |
CreateRamp() | 创建颜色带 |
2.3. 示例代码
项目路径 | 百度云盘地址下/PIE示例程序/07图层渲染/06.栅格拉伸渲染 |
数据路径 | 百度云盘地址下/PIE示例数据/栅格数据/04.World/CC_2018082615.tif |
视频路径 | 百度云盘地址下/PIE视频教程/07图层渲染/06.栅格拉伸渲染.avi |
示例代码 | |
1 if (mapControlMain.ActiveView.CurrentLayer == null) return; 2 //选中的图层是否为栅格图层 3 IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer; 4 if (rasterLayer == null) return; 5 //设置色带 6 IAlgorithmicColorRamp algoColorRamp = new AlgorithmicColorRamp(); 7 algoColorRamp.FromColor = Color.Green; 8 algoColorRamp.ToColor = Color.DarkOrange; 9 10 bool resultOK = algoColorRamp.CreateRamp();11 //设置StretchColorRampRender12 IRasterStretchColorRampRender rasterSColorRampRender = new RasterStretchColorRampRender();13 rasterSColorRampRender.BandIndex = 0; //设置要拉伸的波段索引号14 rasterSColorRampRender.ClassColors = (algoColorRamp as IColorRamp).GetColors();15 //设置Render属性16 IRasterRender rasterRender = rasterSColorRampRender as IRasterRender;17 rasterLayer.Render = rasterRender;18 // 刷新地图19 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); |
2.4. 示例截图