LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

GetData Method (RasterRegion)

Example 





Returns an array of System.Byte that represents the information that describes this RasterRegion. .NET support Silverlight support WinRT support
Syntax
public byte[] GetData()
'Declaration
 
Public Function GetData() As Byte()
'Usage
 
Dim instance As RasterRegion
Dim value() As Byte
 
value = instance.GetData()
public byte[] GetData()
 function Leadtools.RasterRegion.GetData()
public:
array<byte>^ GetData(); 

Return Value

An array of System.Byte that represents the information that describes this RasterRegion.
Remarks

You can use the GetData and SetData methods to save and load the content of a region to disk or memory.

If this RasterRegion is empty, then this method will return an array of 0 items.

Example
 
Public Sub RasterRegionDataExample()
      Dim codecs As New RasterCodecs()

      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim destFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion1.bmp")
      Dim regionFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Region.bin")
      Dim destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion2.bmp")

      Dim region As RasterRegion = Nothing

      ' Load the source image
      Using image As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Add an elliptical region to it
         image.AddEllipseToRegion(Nothing, New LeadRect(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set)

         ' Fill the image with a color and save it to disk to show the region
         Dim cmd As New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow))
         cmd.Run(image)

         codecs.Save(image, destFileName1, RasterImageFormat.Bmp, 24)

         ' Get the region
         region = image.GetRegion(Nothing)
      End Using

      ' Save this region to disk
      Dim data() As Byte = region.GetData()
      File.WriteAllBytes(regionFileName, data)

      ' Dispose the region
      region.Dispose()

      ' Now, reload the image and region from disk, set the region into the image directly
      ' from the data we save, re-fill and save again
      Using image As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Create a region from the data we saved on disk
         data = File.ReadAllBytes(regionFileName)
         region = New RasterRegion(data)
         ' Set this region into the image
         image.SetRegion(Nothing, region, RasterRegionCombineMode.Set)
         region.Dispose()

         ' Fill the image with a color and save it to disk to show the region
         Dim cmd As New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow))
         cmd.Run(image)

         codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24)
      End Using

      codecs.Dispose()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void RasterRegionDataExample()
   {
      RasterCodecs codecs = new RasterCodecs();

      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion1.bmp");
      string regionFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Region.bin");
      string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion2.bmp");

      RasterRegion region = null;

      // Load the source image
      using(RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
      {
         // Add an elliptical region to it
         image.AddEllipseToRegion(null, new LeadRect(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set);

         // Fill the image with a color and save it to disk to show the region
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow));
         cmd.Run(image);

         codecs.Save(image, destFileName1, RasterImageFormat.Bmp, 24);

         // Get the region
         region = image.GetRegion(null);
      }

      // Save this region to disk
      byte[] data = region.GetData();
      File.WriteAllBytes(regionFileName, data);

      // Dispose the region
      region.Dispose();

      // Now, reload the image and region from disk, set the region into the image directly
      // from the data we save, re-fill and save again
      using(RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
      {
         // Create a region from the data we saved on disk
         data = File.ReadAllBytes(regionFileName);
         using(region = new RasterRegion(data))
         {
            // Set this region into the image
            image.SetRegion(null, region, RasterRegionCombineMode.Set);
         }

         // Fill the image with a color and save it to disk to show the region
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow));
         cmd.Run(image);

         codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24);
      }

      codecs.Dispose();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
RasterRegionExamples.prototype.RasterRegionDataExample = function () {
    Tools.SetLicense();
    with (Leadtools) {
        with (Leadtools.Codecs) {
            var codecs = new RasterCodecs();

            var srcFileName = "Assets\\Image1.cmp";
            var destFileName1 = "Image1_WithRegion1.bmp";
            var regionFileName = "Image1_Region.bin";
            var destFileName2 = "Image1_WithRegion2.bmp";

            var region = null;
            var image;
            var data;
            var regionStream;
            var buffer;
            // Load the source image
            return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
                return codecs.loadAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.bgr, 1, 1)
            })
                .then(function (img) {
                    image = img;

                    // Add an elliptical region to it
                    image.addEllipseToRegion(null, LeadRectHelper.create(0, 0, image.imageWidth, image.imageHeight), RasterRegionCombineMode.set);

                    // Fill the image with a color and save it to disk to show the region
                    var cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.yellow));
                    cmd.run(image);

                    return Tools.AppLocalFolder().createFileAsync(destFileName1)
                })
                .then(function (saveFile) {
                    var saveStream = LeadStreamFactory.create(saveFile);
                    return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 0)
                })
                .then(function () {
                    // Get the region
                    region = image.getRegion(null);


                    // Save this region to disk
                    data = region.getData();
                    return Tools.AppLocalFolder().createFileAsync(regionFileName, Windows.Storage.CreationCollisionOption.replaceExisting)
                })
                .then(function (regionFile) {
                    return regionFile.openAsync(Windows.Storage.FileAccessMode.readWrite)
                })
                .then(function (regStream) {
                    regionStream = regStream;
                    var dataWriter = new Windows.Storage.Streams.DataWriter();
                    dataWriter.writeBytes(data);
                    buffer = dataWriter.detachBuffer();
                    return regionStream.writeAsync(buffer)
                }).then(function () {
                    regionStream.close();

                    // Dispose the region
                    region.close();

                    // Now, reload the image and region from disk, set the region into the image directly
                    // from the data we save, re-fill and save again
                    return Tools.AppInstallFolder().getFileAsync(srcFileName)
                })
                .then(function (loadFile) {
                    return codecs.loadAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.bgr, 1, 1)
                })
                .then(function (loadFile) {

                    // Create a region from the data we saved on disk
                    return Tools.AppLocalFolder().createFileAsync(regionFileName, Windows.Storage.CreationCollisionOption.openIfExists)
                    //return Tools.AppLocalFolder().openStreamForReadAsync(regionFileName)
                })
                .then(function (regionFile2) {
                    return regionFile2.openReadAsync()
                })
                .then(function (regionStream2) {
                    var dataReader = new Windows.Storage.Streams.DataReader(regionStream2);
                    data = new Uint8Array(dataReader.unconsumedBufferLength);
                    dataReader.readBytes(data);

                    region = new RasterRegion();

                    region.setData(data);
                    // Set this region into the image
                    image.setRegion(null, region, RasterRegionCombineMode.set);
                    region.close();

                    // Fill the image with a color and save it to disk to show the region
                    var cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.yellow));
                    cmd.run(image);

                    return Tools.AppLocalFolder().createFileAsync(destFileName2)
                })
                .then(function (saveFile) {
                    var saveStream = LeadStreamFactory.create(saveFile);
                    return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 24)
                })
                .then(function () {
                    image.close();
                    codecs.close();
                });
        }
    }
}
[TestMethod]
public async Task RasterRegionDataExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName1 = "Image1_WithRegion1.bmp";
   string regionFileName = "Image1_Region.bin";
   string destFileName2 = "Image1_WithRegion2.bmp";

   RasterRegion region = null;

   // Load the source image
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile), 0, CodecsLoadByteOrder.Bgr, 1, 1))
   {
      // Add an elliptical region to it
      image.AddEllipseToRegion(null, LeadRectHelper.Create(0, 0, image.ImageWidth, image.ImageHeight), RasterRegionCombineMode.Set);

      // Fill the image with a color and save it to disk to show the region
      FillCommand cmd = new FillCommand(RasterColorHelper.FromKnownColor(RasterKnownColor.Yellow));
      cmd.Run(image);

      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName1);
      ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
      await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 0);

      // Get the region
      region = image.GetRegion(null);
   }

   // Save this region to disk
   byte[] data = region.GetData();
   StorageFile regionFile = await Tools.AppLocalFolder.CreateFileAsync(regionFileName, CreationCollisionOption.ReplaceExisting);
   System.IO.Stream regionStream = await regionFile.OpenStreamForWriteAsync();
   regionStream.Write(data, 0, data.Length);
   regionStream.Dispose();

   // Dispose the region
   region.Dispose();

   // Now, reload the image and region from disk, set the region into the image directly
   // from the data we save, re-fill and save again
   loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile), 0, CodecsLoadByteOrder.Bgr, 1, 1))
   {
      // Create a region from the data we saved on disk
      System.IO.Stream regionStream2 = await Tools.AppLocalFolder.OpenStreamForReadAsync(regionFileName);
      regionStream2.Read(data, 0, (int)regionStream2.Length);
      using(region = new RasterRegion())
      {
         region.SetData(data);
         // Set this region into the image
         image.SetRegion(null, region, RasterRegionCombineMode.Set);
      }

      // Fill the image with a color and save it to disk to show the region
      FillCommand cmd = new FillCommand(RasterColorHelper.FromKnownColor(RasterKnownColor.Yellow));
      cmd.Run(image);

      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName2);
      ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
      await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 24);
   }

   codecs.Dispose();
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterRegion Class
RasterRegion Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.