红色的冰Oo 2023-03-24 16:36 采纳率: 57.1%
浏览 50
已结题

C#ArcEngine二次开发如何改变影像的RGB默认值

C#ArcEngine二次开发如何改变影像的RGB值
使用的以下方法出现的是默认的RGB值,无法修改

                //RGB颜色显示
                //OpenYXTRaster(WJName);
                string selectName = System.IO.Path.GetFileName(WJName);//tif打开
                IRaster pRas = openRaster(System.IO.Path.GetDirectoryName(WJName), selectName);
                IRasterLayer pRLyr = new RasterLayerClass();
                pRLyr.CreateFromRaster(pRas);
                axMapControl1.AddLayer(pRLyr);

  • 写回答

8条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-24 16:50
    关注

    基于Monster 组和GPT的调写:
    你先建个RGB栅格渲染器,再设置颜色。

    //获取IRasterLayer接口
    IRasterLayer pRLyr = (IRasterLayer)axMapControl1.get_Layer(0);
    
    //获取IRasterRenderer接口
    IRasterRenderer pRRen = pRLyr.Renderer as IRasterRenderer;
    
    //创建RGB颜色
    IColor pRed = new RgbColorClass() { Red = 255 };
    IColor pGreen = new RgbColorClass() { Green = 255 };
    IColor pBlue = new RgbColorClass() { Blue = 255 };
    
    //设置RGB栅格渲染器
    IRgbRenderer pRgbRen = new RgbRendererClass();
    pRgbRen.RedBandIndex = 0;
    pRgbRen.GreenBandIndex = 1;
    pRgbRen.BlueBandIndex = 2;
    pRgbRen.UseGamma = true;
    pRgbRen.GammaValue = 1.2;
    pRgbRen.RedContrast = 1.2;
    pRgbRen.GreenContrast = 1.2;
    pRgbRen.BlueContrast = 1.2;
    pRgbRen.RedColor = pRed;
    pRgbRen.GreenColor = pGreen;
    pRgbRen.BlueColor = pBlue;
    
    //将RGB栅格渲染器设置为栅格图层的渲染器
    pRRen.RasterRenderer = pRgbRen as IRasterRenderer;
    
    
    

    这样式子,试试更改RGB颜色的值,咱就说把红色通道的值设置为0:

    //获取IRasterLayer接口
    IRasterLayer pRLyr = (IRasterLayer)axMapControl1.get_Layer(0);
    
    //获取IRasterRenderer接口
    IRasterRenderer pRRen = pRLyr.Renderer as IRasterRenderer;
    
    //获取RGB栅格渲染器
    IRgbRenderer pRgbRen = pRRen.RasterRenderer as IRgbRenderer;
    
    //更改红色通道的颜色为黑色
    IColor pBlack = new RgbColorClass() { Red = 0, Green = 0, Blue = 0 };
    pRgbRen.RedColor = pBlack;
    
    //刷新地图控件
    axMapControl1.Refresh();
    
    
    

    就能在C# ArcEngine中通过修改RGB颜色来更改影像的颜色了。用openRaster方法打开影像前,要先加载影像所需的引用,比如ESRI.ArcGIS.DataSourcesRaster等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月24日

悬赏问题

  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme