ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Core.Data.Raster Namespace / RasterStorageDef Class / SetCompressionType Method
The RasterCompressionType to set.
Example

In This Topic
    SetCompressionType Method
    In This Topic
    Sets the RasterCompressionType of the raster to be stored on this raster storage definition. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    public void SetCompressionType( 
       RasterCompressionType compression
    )
    Public Sub SetCompressionType( _
       ByVal compression As RasterCompressionType _
    ) 

    Parameters

    compression
    The RasterCompressionType to set.
    Remarks
    The compression type property specifies the compression method to be used to compress the raster data to be stored. LZ77 (lossless) and JPEG (lossy), and JPEG 2000 compression types are supported. By default, the compression type is set to LZ77.
    Example
    Write a compressed image to a raster field
    QueuedTask.Run(() =>
    {
      //Open the raster dataset on disk and create a compressed raster value dataset object
      var dataStore = new ArcGIS.Core.Data.FileSystemDatastore(new ArcGIS.Core.Data.FileSystemConnectionPath(new System.Uri(@"e:\temp"), ArcGIS.Core.Data.FileSystemDatastoreType.Raster));
      using (var fileRasterDataset = dataStore.OpenDataset<ArcGIS.Core.Data.Raster.RasterDataset>("Hydrant.jpg"))
      {
        var storageDef = new ArcGIS.Core.Data.Raster.RasterStorageDef();
        storageDef.SetCompressionType(ArcGIS.Core.Data.Raster.RasterCompressionType.JPEG);
        storageDef.SetCompressionQuality(90);
    
        var rv = new ArcGIS.Core.Data.Raster.RasterValue();
        rv.SetRasterDataset(fileRasterDataset);
        rv.SetRasterStorageDef(storageDef);
    
        var sel = MapView.Active.Map.GetSelection();
    
        //insert a raster value object into the raster field
        var insp = new ArcGIS.Desktop.Editing.Attributes.Inspector();
        insp.Load(sel.ToDictionary().Keys.First(), sel.ToDictionary().Values.First());
        insp["Photo"] = rv;
    
        var op = new EditOperation();
        op.Name = "Raster Inspector";
        op.Modify(insp);
        if (!op.IsEmpty)
        {
          var result = op.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
        }
      }
    });
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also