红色的冰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日

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)