/// <summary> /// 拉伸渲染raster图层 /// </summary> /// <params name="pRLayer">raster图层</params> /// <remarks></remarks> public void UsingRasterStretchColorRampRender(IRasterLayer pRLayer) { //获得图层 IRaster pRaster = default(IRaster); pRaster = pRLayer.Raster; //创建渲染并转换到栅格渲染 IRasterStretchColorRampRenderer pStretchRen = default(IRasterStretchColorRampRenderer); pStretchRen = new RasterStretchColorRampRenderer(); IRasterRenderer pRasRen = default(IRasterRenderer); pRasRen = (IRasterRenderer)pStretchRen; //栅格渲染赋值和更新 pRasRen.Raster = pRaster; pRasRen.Update(); //定义起止颜色 IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 0; pFromColor.Green = 255; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 255; pToColor.Green = 0; pToColor.Blue = 0; //创建颜色条 IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp(); pRamp.Size = 255; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool bOK; pRamp.CreateRamp(out bOK); //插入颜色条和选择渲染波段 pStretchRen.BandIndex = 0; pStretchRen.ColorRamp = pRamp; //用新的设置更新渲染并赋值给图层 pRasRen.Update(); pRLayer.Renderer = (IRasterRenderer)pStretchRen; //释放内存 pRLayer = null; pRaster = null; pStretchRen = null; pRasRen = null; pRamp = null; pToColor = null; pFromColor = null; }
/// <summary> /// 拉伸渲染raster图层 /// </summary> /// <params name="pRLayer">raster图层</params> /// <remarks></remarks> public void UsingRasterStretchColorRampRender(IRasterLayer pRLayer) { //获得图层 IRaster pRaster = default(IRaster); pRaster = pRLayer.Raster; //创建渲染并转换到栅格渲染 IRasterStretchColorRampRenderer pStretchRen = default(IRasterStretchColorRampRenderer); pStretchRen = new RasterStretchColorRampRenderer(); IRasterRenderer pRasRen = default(IRasterRenderer); pRasRen = (IRasterRenderer)pStretchRen; //栅格渲染赋值和更新 pRasRen.Raster = pRaster; pRasRen.Update(); //定义起止颜色 IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 0; pFromColor.Green = 255; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 255; pToColor.Green = 0; pToColor.Blue = 0; //创建颜色条 IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp(); pRamp.Size = 255; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool bOK; pRamp.CreateRamp(out bOK); //插入颜色条和选择渲染波段 pStretchRen.BandIndex = 0; pStretchRen.ColorRamp = pRamp; //用新的设置更新渲染并赋值给图层 pRasRen.Update(); pRLayer.Renderer = (IRasterRenderer)pStretchRen; //释放内存 pRLayer = null; pRaster = null; pStretchRen = null; pRasRen = null; pRamp = null; pToColor = null; pFromColor = null; }
public static IRasterLayer SetStretchRenderer(IRaster pRaster) { try { //创建着色类和QI栅格着色 IRasterStretchColorRampRenderer pStretchRen = new RasterStretchColorRampRenderer(); IRasterRenderer pRasRen = pStretchRen as IRasterRenderer; //为着色和更新设置栅格数据 pRasRen.Raster = pRaster; pRasRen.Update(); //定义起点和终点颜色 IColor pFromColor = new RgbColor(); IRgbColor pRgbColor = pFromColor as IRgbColor; pRgbColor.Red = 255; pRgbColor.Green = 0; pRgbColor.Blue = 0; IColor pToColor = new RgbColor(); pRgbColor = pToColor as IRgbColor; pRgbColor.Red = 0; pRgbColor.Green = 255; pRgbColor.Blue = 0; //创建颜色分级 IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp(); pRamp.Size = 255; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool ok = true; pRamp.CreateRamp(out ok); //把颜色分级插入着色中并选择一个波段 pStretchRen.BandIndex = 0; pStretchRen.ColorRamp = pRamp; pRasRen.Update(); IRasterLayer pRLayer = new RasterLayer(); pRLayer.CreateFromRaster(pRaster); pRLayer.Renderer = pStretchRen as IRasterRenderer; return(pRLayer); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
/// <summary> /// Generates a raster renderer using the provided settings /// </summary> /// <returns>IRasterRenderer</returns> private static IRasterRenderer GenerateRasterRenderer(IRaster pRaster) { IRasterStretchColorRampRenderer pStretchRen = new RasterStretchColorRampRenderer(); //IRasterUniqueValueRenderer pStretchRen = new RasterUniqueValueRenderer(); IRasterRenderer pRasRen = (IRasterRenderer)pStretchRen; pRasRen.Raster = pRaster; pRasRen.Update(); IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 255; pFromColor.Green = 0; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 0; pToColor.Green = 255; pToColor.Blue = 0; IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp(); pRamp.Size = 255; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool bOK; pRamp.CreateRamp(out bOK); pStretchRen.BandIndex = 0; pStretchRen.ColorRamp = pRamp; pRasRen.Update(); pRaster = null; pRasRen = null; pRamp = null; pToColor = null; pFromColor = null; return((IRasterRenderer)pStretchRen); }
private void btnStretch_Click(object sender, EventArgs e) { IMap map = axMapControl1.ActiveView.FocusMap; IRasterLayer rLayer = map.get_Layer(0) as IRasterLayer; IRaster raster = rLayer.Raster; IRasterStretchColorRampRenderer stretchRen = new RasterStretchColorRampRenderer(); IRasterRenderer rasRen = stretchRen as IRasterRenderer; rasRen.Raster = raster; rasRen.Update(); IRgbColor fromColor = new RgbColor(); fromColor.Red = 255; fromColor.Green = 0; fromColor.Blue = 0; IRgbColor toColor = new RgbColor(); toColor.Red = 0; toColor.Green = 255; toColor.Blue = 0; IAlgorithmicColorRamp ramp = new AlgorithmicColorRamp(); ramp.Size = 255; ramp.FromColor = fromColor; ramp.ToColor = toColor; bool bTrue = true; //Special syntax ramp.CreateRamp(out bTrue); //plug this colorramp ubti renderer and select a band stretchRen.BandIndex = 1;//0 stretchRen.ColorRamp = ramp; rasRen.Update(); rLayer.Renderer = stretchRen as IRasterRenderer; axMapControl1.ActiveView.Refresh(); axTOCControl1.Update(); }
public static IRasterStretchColorRampRenderer RasterStretchRenderer(IRasterLayer irasterLayer_0) { bool flag; IRasterStretchColorRampRenderer rasterStretchColorRampRenderer; try { IRasterStretchColorRampRenderer rasterStretchColorRampRendererClass = new RasterStretchColorRampRenderer(); IRasterRenderer raster = (IRasterRenderer)rasterStretchColorRampRendererClass; raster.Raster = irasterLayer_0.Raster; raster.Update(); rasterStretchColorRampRendererClass.BandIndex = 0; IAlgorithmicColorRamp algorithmicColorRampClass = new AlgorithmicColorRamp(); IColor rgbColorClass = new RgbColor(); (rgbColorClass as IRgbColor).Red = 255; (rgbColorClass as IRgbColor).Red = 0; (rgbColorClass as IRgbColor).Green = 0; (rgbColorClass as IRgbColor).Blue = 0; IColor color = new RgbColor(); (color as IRgbColor).Red = 255; (color as IRgbColor).Green = 255; (color as IRgbColor).Blue = 255; algorithmicColorRampClass.Size = 255; algorithmicColorRampClass.FromColor = rgbColorClass; algorithmicColorRampClass.ToColor = color; algorithmicColorRampClass.CreateRamp(out flag); rasterStretchColorRampRendererClass.ColorRamp = algorithmicColorRampClass; raster.Update(); rasterStretchColorRampRenderer = raster as IRasterStretchColorRampRenderer; } catch (Exception exception) { Debug.WriteLine(exception.Message); rasterStretchColorRampRenderer = null; } return(rasterStretchColorRampRenderer); }
public static IRasterRenderer CreateContinuousRenderer(Raster gRaster, IColorRamp pColorRamp, bool bInvert = false) { try { gRaster.ComputeStatistics(); Dictionary <string, decimal> stats = gRaster.GetStatistics(); double rMin = (double)stats["min"]; double rMax = (double)stats["max"]; RasterStretchColorRampRenderer stretchRenderer = new RasterStretchColorRampRenderer(); IRasterRenderer rasterRenderer = (IRasterRenderer)stretchRenderer; IRasterDataset rasterDataset = ArcMapUtilities.GetRasterDataset(gRaster); IRaster raster = rasterDataset.CreateDefaultRaster(); rasterRenderer.Raster = raster; IRasterRendererColorRamp pRenderColorRamp = (IRasterRendererColorRamp)rasterRenderer; pRenderColorRamp.ColorRamp = pColorRamp; int iRound = GetMagnitude(rMin); stretchRenderer.LabelHigh = Math.Round(rMax, Math.Abs(iRound)).ToString(); stretchRenderer.LabelLow = Math.Round(rMin, Math.Abs(iRound)).ToString(); if (bInvert) { IRasterStretch2 pStretch = (IRasterStretch2)stretchRenderer; pStretch.Invert = true; } rasterRenderer.Update(); return(rasterRenderer); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return(null); } }
public static void UsingRasterStretchColorRampRenderer(IRasterLayer irasterLayer_0) { bool flag; IRaster raster = irasterLayer_0.Raster; IRasterStretchColorRampRenderer renderer = new RasterStretchColorRampRenderer(); IRasterRenderer renderer2 = renderer as IRasterRenderer; renderer2.Raster = raster; renderer2.Update(); IColor color = ColorManage.CreatColor(255, 0, 0); IColor color2 = ColorManage.CreatColor(0, 255, 0); IAlgorithmicColorRamp ramp = new AlgorithmicColorRamp { Size = 255, FromColor = color, ToColor = color2 }; ramp.CreateRamp(out flag); renderer.BandIndex = 0; renderer.ColorRamp = ramp; renderer2.Update(); irasterLayer_0.Renderer = renderer as IRasterRenderer; }
private void MultiBandsStretchRender(ILayer pLayerR, int BandRenderNumber, IColorRamp colorRamp) { //Get raster input from layer IRasterLayer pRLayer = (IRasterLayer)pLayerR; IRaster pRaster = pRLayer.Raster; //Create renderer and QI RasterRenderer IRasterStretchColorRampRenderer pStretchRen = new RasterStretchColorRampRenderer(); IRasterRenderer pRasRen; pRasRen = (IRasterRenderer)pStretchRen; //Set raster for the renderer and update pRasRen.Raster = pRaster; pRasRen.Update(); // Plug this colorramp into renderer and select a band pStretchRen.BandIndex = BandRenderNumber; pStretchRen.ColorRamp = colorRamp; //Update the renderer with new settings and plug into layer pRasRen.Update(); pRLayer.Renderer = (IRasterRenderer)pStretchRen; }
/// <summary> /// Generates a raster renderer using the provided settings /// </summary> /// <returns>IRasterRenderer</returns> private static IRasterRenderer GenerateRasterRenderer(IRaster pRaster) { IRasterStretchColorRampRenderer pStretchRen = new RasterStretchColorRampRenderer(); //IRasterUniqueValueRenderer pStretchRen = new RasterUniqueValueRenderer(); IRasterRenderer pRasRen = (IRasterRenderer)pStretchRen; pRasRen.Raster = pRaster; pRasRen.Update(); IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 255; pFromColor.Green = 0; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 0; pToColor.Green = 255; pToColor.Blue = 0; IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp(); pRamp.Size = 255; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool bOK; pRamp.CreateRamp(out bOK); pStretchRen.BandIndex = 0; pStretchRen.ColorRamp = pRamp; pRasRen.Update(); pRaster = null; pRasRen = null; pRamp = null; pToColor = null; pFromColor = null; return (IRasterRenderer)pStretchRen; }