Esempio n. 1
0
        private void btnChangeRGBRenderer_Click(object sender, EventArgs e)
        {
            //Only effective to Raster Layer
            IMap   map    = axMapControl1.ActiveView.FocusMap;
            ILayer aLayer = map.get_Layer(0);
            //IRasterLayer rLayer = map.get_Layer(3) as IRasterLayer;
            //IRasterLayer rLayer = (IRasterLayer)aLayer;
            IRasterLayer rLayer = aLayer as IRasterLayer;
            IRaster      raster = rLayer.Raster;

            IRasterBandCollection bandCol = raster as IRasterBandCollection;

            if (bandCol.Count < 3)
            {
                //not meet the requirements
                return;
            }
            IRasterRGBRenderer rgbRen = new RasterRGBRenderer();
            IRasterRenderer    rasRen = rgbRen as IRasterRenderer;

            rasRen.Raster = raster;
            rasRen.Update();
            //change band ro renderer
            rgbRen.RedBandIndex   = 2;
            rgbRen.GreenBandIndex = 1;
            rgbRen.BlueBandIndex  = 0;


            //updtae renderer and refresh layer
            rLayer.Renderer = rgbRen as IRasterRenderer;
            axMapControl1.ActiveView.Refresh();
            axTOCControl1.Update();
        }
Esempio n. 2
0
        private void RGBCompositeRender(ILayer pLayerR, int bandred, int bandgreen, int bandblue)
        {
            // Get raster input from layer
            IRasterLayer          rasterLayer = (IRasterLayer)pLayerR;
            IRaster               raster      = rasterLayer.Raster;
            IRasterBandCollection bandCol     = (IRasterBandCollection)raster;

            if (bandCol.Count < 3)
            {
                return;
            }

            // Create UniqueValue renderer and QI RasterRenderer
            IRasterRGBRenderer2 rasterRGBRen = new RasterRGBRenderer() as IRasterRGBRenderer2;
            IRasterRenderer     rasterRen    = (IRasterRenderer)rasterRGBRen;

            // Connect the renderer and the raster
            rasterRen.Raster = raster;
            rasterRen.Update();

            rasterRGBRen.RedBandIndex   = bandred;
            rasterRGBRen.GreenBandIndex = bandgreen;
            rasterRGBRen.BlueBandIndex  = bandblue;

            //Update render and refresh layer
            rasterRen.Update();
            rasterLayer.Renderer = (IRasterRenderer)rasterRGBRen;
        }
Esempio n. 3
0
        public static bool UsingRGBRenderer(IRasterLayer irasterLayer_0)
        {
            IRaster raster = irasterLayer_0.Raster;
            IRasterBandCollection bands = raster as IRasterBandCollection;

            if (bands.Count < 3)
            {
                return(false);
            }
            IRasterRGBRenderer renderer  = new RasterRGBRenderer();
            IRasterRenderer    renderer2 = renderer as IRasterRenderer;

            renderer2.Raster = raster;
            renderer2.Update();
            renderer.RedBandIndex   = 2;
            renderer.GreenBandIndex = 1;
            renderer.BlueBandIndex  = 0;
            renderer2.Update();
            irasterLayer_0.Renderer = renderer as IRasterRenderer;
            return(true);
        }
Esempio n. 4
0
        public static IRasterRGBRenderer RasterRGBRenderer(IRasterLayer irasterLayer_0)
        {
            IRasterRGBRenderer rasterRGBRenderer;

            try
            {
                IRasterRGBRenderer rasterRGBRendererClass = new RasterRGBRenderer();
                IRasterRenderer    raster = (IRasterRenderer)rasterRGBRendererClass;
                raster.Raster = irasterLayer_0.Raster;
                rasterRGBRendererClass.RedBandIndex   = 0;
                rasterRGBRendererClass.GreenBandIndex = 1;
                rasterRGBRendererClass.BlueBandIndex  = 2;
                raster.Update();
                rasterRGBRenderer = raster as IRasterRGBRenderer;
            }
            catch (Exception exception)
            {
                Debug.WriteLine(exception.Message);
                rasterRGBRenderer = null;
            }
            return(rasterRGBRenderer);
        }