public void SetRasterNoDataColor() { try { if (m_pLyr == null) { return; } ILayer pLayer = m_pLyr; if (!(pLayer is IRasterLayer) && !(pLayer is IRasterCatalogLayer)) { return; } //获得当前图层的符号 IRasterRenderer pRasterRender = null; if (pLayer is IRasterLayer) { IRasterLayer pRasterLayer = pLayer as IRasterLayer; pRasterRender = pRasterLayer.Renderer; } else if (pLayer is IRasterCatalogLayer) { IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer; pRasterRender = pRasterCatalogLayer.Renderer; } else { return; } if (pRasterRender == null) { return; } IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps; if (pRasterDisplayProps == null) { return; } //获得当前的颜色值 并设置 IColor pColor = ConvertColorToIColor(this.colorNoData.SelectedColor); pColor.Transparency = (byte)this.sliderTransparency.Value; pRasterDisplayProps.NoDataColor = pColor; } catch { } }
/// <summary> /// 从图层获取符号方案 /// </summary> /// <param name="pLayer"></param> /// <returns></returns> private ESRI.ArcGIS.Carto.IRasterRenderer GetRasterRenderer(ESRI.ArcGIS.Carto.ILayer pLayer) { IRasterRenderer pRasterRender = null; if (pLayer is IRasterLayer) { IRasterLayer pRasterLayer = pLayer as IRasterLayer; pRasterRender = pRasterLayer.Renderer; } else if (pLayer is IRasterCatalogLayer) { IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer; pRasterRender = pRasterCatalogLayer.Renderer; } return(pRasterRender); }
private void InitRasterInfo() { if (m_pLyr == null) { return; } ILayer pLayer = m_pLyr; if (!(pLayer is IRasterLayer) && !(pLayer is IRasterCatalogLayer)) { return; } //获得当前图层的符号 IRasterRenderer pRasterRender = null; if (pLayer is IRasterLayer) { IRasterLayer pRasterLayer = pLayer as IRasterLayer; pRasterRender = pRasterLayer.Renderer; } else if (pLayer is IRasterCatalogLayer) { IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer; pRasterRender = pRasterCatalogLayer.Renderer; } else { return; } if (pRasterRender == null) { return; } IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps; if (pRasterDisplayProps == null) { return; } IColor pColor = pRasterDisplayProps.NoDataColor; //设置界面 this.colorNoData.SelectedColor = System.Drawing.ColorTranslator.FromOle(pColor.RGB); this.sliderTransparency.Value = (int)pColor.Transparency; }
/// <summary> /// 设置NoData的颜色值 /// </summary> /// <param name="pLayer"></param> public static void SetRasterDefaultNoDataColor(ILayer pLayer) { if (pLayer == null) { return; } //获得当前图层的符号 IRasterRenderer pRasterRender = null; if (pLayer is IRasterLayer) { IRasterLayer pRasterLayer = pLayer as IRasterLayer; pRasterRender = pRasterLayer.Renderer; } else if (pLayer is IRasterCatalogLayer) { IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer; pRasterRender = pRasterCatalogLayer.Renderer; } else { return; } if (pRasterRender == null) { return; } //设置NoData颜色值 IColor pColor = null; if (pRasterRender is IRasterRGBRenderer) //默认是白色 //changed by chulili 20110825 0是透明 全部默认Nodata颜色是透明 { pColor = GetColorRGB(255, 255, 255, 0); } else if (pRasterRender is IRasterUniqueValueRenderer)//默认是白色 { pColor = GetColorRGB(255, 255, 255, 0); } else if (pRasterRender is IRasterStretchColorRampRenderer)//默认是透明色 0是透明 { pColor = GetColorRGB(255, 255, 255, 0); } else if (pRasterRender is IRasterClassifyColorRampRenderer)//默认是白色 { pColor = GetColorRGB(255, 255, 255, 0); } else { return; } //设置颜色 IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps; if (pRasterDisplayProps == null) { return; } pRasterDisplayProps.NoDataColor = pColor; }