AE 栅格图分级渲染

简介:

转自 AE 栅格图分级渲染

 

 

ArcEngine对矢量数据进行风格化实在是得心应手,同样的对于栅格图像也能进行风格化!以前没接触过,今天正好需要,做出了栅格图像的渲染!下面实现的思路:

1.定义渲染的一系列接口
2.判断图像是否建立了直方图,如果没有则进行创建。
3.定义颜色序列,为渲染提供渲染的方案。
4.调用Render方法进行渲染。
下面是代码:有两个方法,一个是加载栅格数据,一个是进行渲染,接着在事件里面调用方法,实现图像渲染!
复制代码
        /// 栅格分类专题图
        ///
        /// 栅格图层
        public static void funColorForRaster_Classify(IRasterLayer pRasterLayer)
        {
            IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRenderer() as IRasterClassifyColorRampRenderer;
            IRasterRenderer pRRend = pRClassRend as IRasterRenderer;
 
            IRaster pRaster = pRasterLayer.Raster;
            IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection;
            IRasterBand pRBand = pRBandCol.Item(0);
            if (pRBand.Histogram == null)
            {
                pRBand.ComputeStatsAndHist();
            }
            pRRend.Raster = pRaster;
            pRClassRend.ClassCount = 10;
            pRRend.Update();
 
            IRgbColor pFromColor = new RgbColor() as IRgbColor;
            pFromColor.Red = 255;
            pFromColor.Green = 0;
            pFromColor.Blue = 0;
            IRgbColor pToColor = new RgbColor() as IRgbColor;
            pToColor.Red = 0;
            pToColor.Green = 0;
            pToColor.Blue = 255;
 
            IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRamp() as IAlgorithmicColorRamp;
            colorRamp.Size = 10;
            colorRamp.FromColor = pFromColor;
            colorRamp.ToColor = pToColor;          
            bool createColorRamp;
 
            colorRamp.CreateRamp(out createColorRamp);
 
            IFillSymbol fillSymbol = new SimpleFillSymbol() as IFillSymbol;
            for (int i = 0; i < pRClassRend.ClassCount; i++)
            {
                fillSymbol.Color = colorRamp.get_Color(i);
                pRClassRend.set_Symbol(i, fillSymbol as ISymbol);
                pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00"));
            }
            pRasterLayer.Renderer = pRRend;
        }
        
        ///
        /// 打开遥感图像
        ///
        /// 图像的地址
        /// IRasterLayer
        private IRasterLayer OpenImage(string imagePath)
        {
            string ws = Path.GetDirectoryName(imagePath);
            string fbs = Path.GetFileName(imagePath);
 
            IWorkspaceFactory pWork = new RasterWorkspaceFactory();
            IRasterWorkspace pRasterWs = pWork.OpenFromFile(ws,0) as IRasterWorkspace;
            IRasterDataset pRasterDataset = pRasterWs.OpenRasterDataset(fbs);
            
            IRasterLayer pRasterLayer = new RasterLayer() as IRasterLayer;
            pRasterLayer.CreateFromDataset(pRasterDataset);
            return pRasterLayer;            
        }
复制代码
事件的逻辑:
axMapControl1.Map.AddLayer(OpenImage(filePath));
axMapControl1.ActiveView.Refresh();
funColorForRaster_Classify(axMapControl1.get_layer(0) as IRasterLayer);//only one RasterLayer
axMapControl1.Activeview.Refresh();
下面是渲染前后的效果图:

 

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。








    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6821287.html ,如需转载请自行联系原作者





相关文章
|
存储 监控 Cloud Native
云原生的应用场景
云原生的应用场景
442 0
|
12月前
|
存储 编解码 缓存
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
在阿里云服务器的购买过程中,云服务器实例规格是很多用户最难选择的一个选项,因为阿里云有着多达几十种不同的实例规格,为此,阿里云官方在云服务器购买页面新推出了一个场景化选型推荐,用户可通过自己的上云场景结合场景化选型里面的业务场景和细分场景来选择适合自己的阿里云服务器实例规格,在很大程度上解决了新手用户在选择阿里云服务器实例规格上的困局。
262 11
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
|
8月前
|
弹性计算 运维 监控
|
9月前
|
JSON 安全 API
API接口是什么?(一篇文章全知道)
在数字化时代,API接口已成为推动软件生态和互联网创新的核心枢纽。本文深入解析了API的本质、架构、类型及应用场景,展示了其在移动互联网、电商、智慧城市等领域的广泛应用,并探讨了API在经济、创新和效率方面的巨大价值与深远影响。
2269 2
|
存储 安全 对象存储
Cookie和Session的区别:从原理到应用
【2月更文挑战第18天】
1129 6
|
JSON 自然语言处理 JavaScript
什么是 AST?
什么是 AST?
298 0
什么是 AST?
|
Cloud Native 网络协议 Serverless
云原生网关 MSE-Higress评测
云原生网关 MSE-Higress (以下简称 MSE-Higress )是遵循开源 Ingress/Gateway API 标准的下一代网关产品,本文将从试用开始由浅入深体验产品功能及特性。
935 0
云原生网关 MSE-Higress评测
YOLO涨点Trick | 超越CIOU/SIOU,Wise-IOU让Yolov7再涨1.5个点!(二)
YOLO涨点Trick | 超越CIOU/SIOU,Wise-IOU让Yolov7再涨1.5个点!(二)
350 0
|
数据挖掘 atlas 数据库
单细胞工具箱|singleR-单细胞类型自动注释(含数据版)
单细胞工具箱|singleR-单细胞类型自动注释(含数据版)
2235 0
|
存储 定位技术 C#
基于C#的ArcEngine二次开发34:使用ConstructUnion方法进行多要素合并(中)
基于C#的ArcEngine二次开发34:使用ConstructUnion方法进行多要素合并(中)
基于C#的ArcEngine二次开发34:使用ConstructUnion方法进行多要素合并(中)

热门文章

最新文章