Example #1
0
        /// <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;
        }
Example #3
0
 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);
        }
Example #5
0
        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();
        }
Example #6
0
        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);
        }
Example #7
0
        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);
            }
        }
Example #8
0
        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;
        }
Example #9
0
        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;
        }