ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / MosaicLayer Class / GetImageLayer Method
Example

In This Topic
    GetImageLayer Method
    In This Topic
    Gets the image sub-layer. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public ImageMosaicSubLayer GetImageLayer()
    Public Function GetImageLayer() As ImageMosaicSubLayer

    Return Value

    ImageMosaicSubLayer representing the mosaic.
    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    Example
    Update the raster colorizer on a mosaic layer
    await QueuedTask.Run(() =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageMosaicSubLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer();
      // Get the colorizer from the image sub-layer.
      CIMRasterColorizer rasterColorizer = mosaicImageSubLayer.GetColorizer();
      // Update raster colorizer properties.
      rasterColorizer.Brightness = 10;
      rasterColorizer.Contrast = -5;
      rasterColorizer.ResamplingType = RasterResamplingType.NearestNeighbor;
      // Update the image sub-layer with the changed colorizer.
      mosaicImageSubLayer.SetColorizer(rasterColorizer);
    });
    Update the RGB colorizer on a mosaic layer
    await QueuedTask.Run(() =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageMosaicSubLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer();
      // Get the colorizer from the image sub-layer.
      CIMRasterColorizer rColorizer = mosaicImageSubLayer.GetColorizer();
      // Check if the colorizer is an RGB colorizer.
      if (rColorizer is CIMRasterRGBColorizer rasterRGBColorizer)
      {
        // Update RGB colorizer properties.
        rasterRGBColorizer.StretchType = RasterStretchType.ESRI;
        // Update the image sub-layer with the changed colorizer.
        mosaicImageSubLayer.SetColorizer(rasterRGBColorizer);
      }
    });
    Check if a certain colorizer can be applied to a mosaic layer
      await QueuedTask.Run(() =>
      {
        // Get the image sub-layer from the mosaic layer.
        ImageMosaicSubLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer();
        // Get the list of colorizers that can be applied to the image sub-layer.
        IEnumerable<RasterColorizerType> applicableColorizerList =
    mosaicImageSubLayer.GetApplicableColorizers();
        // Check if the RGB colorizer is part of the list.
        bool isTrue_ContainTheColorizerType =
    applicableColorizerList.Contains(RasterColorizerType.RGBColorizer);
      });
    Create a new colorizer based on a default colorizer definition and apply it to the mosaic layer
    await QueuedTask.Run(async () =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageMosaicSubLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer();
      // Check if the Stretch colorizer can be applied to the image sub-layer.
      if (mosaicImageSubLayer.GetApplicableColorizers().Contains(RasterColorizerType.StretchColorizer))
      {
        // Create a new Stretch Colorizer Definition using the default constructor.
        StretchColorizerDefinition stretchColorizerDef_default = new StretchColorizerDefinition();
        // Create a new Stretch colorizer using the colorizer definition created above.
        CIMRasterStretchColorizer newStretchColorizer_default =
    await mosaicImageSubLayer.CreateColorizerAsync(stretchColorizerDef_default) as CIMRasterStretchColorizer;
        // Set the new colorizer on the image sub-layer.
        mosaicImageSubLayer.SetColorizer(newStretchColorizer_default);
      }
    });
    Create a new colorizer based on a custom colorizer definition and apply it to the mosaic layer
    await QueuedTask.Run(async () =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageMosaicSubLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer();
      // Check if the Stretch colorizer can be applied to the image sub-layer.
      if (mosaicImageSubLayer.GetApplicableColorizers().Contains(RasterColorizerType.StretchColorizer))
      {
        // Create a new Stretch colorizer definition specifying parameters
        // for band index, stretch type, gamma and color ramp.
        StretchColorizerDefinition stretchColorizerDef_custom =
    new StretchColorizerDefinition(1, RasterStretchType.ESRI, 2, colorRamp);
        // Create a new stretch colorizer using the colorizer definition created above.
        CIMRasterStretchColorizer newStretchColorizer_custom =
    await mosaicImageSubLayer.CreateColorizerAsync(stretchColorizerDef_custom) as CIMRasterStretchColorizer;
        // Set the new colorizer on the image sub-layer.
        mosaicImageSubLayer.SetColorizer(newStretchColorizer_custom);
      }
    });
    Update the sort order - mosaic method on a mosaic layer
    await QueuedTask.Run(() =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageServiceLayer mosaicImageSubLayer = mosaicLayer.GetImageLayer() as ImageServiceLayer;
      // Get the mosaic rule.
      CIMMosaicRule mosaicingRule = mosaicImageSubLayer.GetMosaicRule();
      // Set the Mosaic Method to Center.
      mosaicingRule.MosaicMethod = RasterMosaicMethod.Center;
      // Update the mosaic with the changed mosaic rule.
      mosaicImageSubLayer.SetMosaicRule(mosaicingRule);
    });
    Update the resolve overlap - mosaic operator on a mosaic layer
    await QueuedTask.Run(() =>
    {
      // Get the image sub-layer from the mosaic layer.
      ImageServiceLayer mosaicImageSublayer = mosaicLayer.GetImageLayer() as ImageServiceLayer;
      // Get the mosaic rule.
      CIMMosaicRule mosaicRule = mosaicImageSublayer.GetMosaicRule();
      // Set the Mosaic Operator to Mean.
      mosaicRule.MosaicOperatorType = RasterMosaicOperatorType.Mean;
      // Update the mosaic with the changed mosaic rule.
      mosaicImageSublayer.SetMosaicRule(mosaicRule);
    });
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also