LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

RasterRegion Class

Example 





Members 
Describes a region of interest in a RasterImage object. .NET support Silverlight support WinRT support
Object Model
RasterRegion Class
Syntax
public class RasterRegion : System.IDisposable  
'Declaration
 
Public Class RasterRegion 
   Implements System.IDisposable 
'Usage
 
Dim instance As RasterRegion
function Leadtools.RasterRegion()
public ref class RasterRegion : public System.IDisposable  
Remarks

The RasterImage object contains a region of interest value that can be used to limit the portion available for updating when using the image processing command. The region can be set using a geometric shape such as RasterImage.AddRectangleToRegion and RasterImage.AddEllipseToRegion or with image data attributes such as RasterImage.AddColorToRegion and RasterImage.AddMaskToRegion.

At any point, you can get a copy of the region inside a RasterImage object using the RasterImage.GetRegion method and update the region inside an image using the RasterImage.SetRegion method.

The RasterRegion class provides a platform independent representation of a region of interest in an image that can be used in any platform supported by LEADTOOLS such as GDI, GDI+, WPF and Silverlight.

To convert a LEADTOOLS RasterRegion object to/from a device dependent region, you can use the following helper classes:

The RasterRegion class implements the System.IDisposable interface, so you must call System.IDisposable.Dispose on any region objects you create after using it.

For more information, refer to Creating a Region.

For more information, refer to Saving A Region.

For more information, refer to Working with the Existing Region.

Example
 
Public Sub RasterRegionExample()
      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 destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion2.bmp")

      ' Load the source image
      Using image As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Create a new rectangular RasterRegion
         Using region As New RasterRegion(New LeadRect(20, 30, 100, 200))
            ' Show this region properties
            Console.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, region.GetBounds())

            ' Set it into the image
            image.SetRegion(Nothing, region, 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)

            ' Clear this region
            region.MakeEmpty()

            ' Show its properties
            Console.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, region.GetBounds())

            ' Set it into the image and fill again with red, notice
            ' that this will fill the whole image since
            ' the region is now empty
            image.SetRegion(Nothing, region, RasterRegionCombineMode.Set)

            cmd = New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red))
            cmd.Run(image)

            codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24)
         End Using
      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 RasterRegionExample()
   {
      RasterCodecs codecs = new RasterCodecs();

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

      // Load the source image
      using(RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
      {
         // Create a new rectangular RasterRegion
         using(RasterRegion region = new RasterRegion(new LeadRect(20, 30, 100, 200)))
         {
            // Show this region properties
            Console.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, region.GetBounds());

            // Set it 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, destFileName1, RasterImageFormat.Bmp, 24);

            // Clear this region
            region.MakeEmpty();

            // Show its properties
            Console.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, region.GetBounds());

            // Set it into the image and fill again with red, notice
            // that this will fill the whole image since
            // the region is now empty
            image.SetRegion(null, region, RasterRegionCombineMode.Set);

            cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red));
            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.RasterRegionExample = function () {
    Tools.SetLicense();
    with (Leadtools) {
        with (Leadtools.Codecs) {
            var codecs = new RasterCodecs();

            var srcFileName = "Assets\\Image1.cmp";
            var destFileName1 = "Image1_WithRegion1.bmp";
            var destFileName2 = "Image1_WithRegion2.bmp";
            var image;
            var region;
            // 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;

                    // Create a new rectangular RasterRegion
                    region = new RasterRegion(LeadRectHelper.create(20, 30, 100, 200));

                    // Show this region properties
                    console.info("IsEmpty: " + region.isEmpty + "\nBounds: " + LeadRectHelper.getStringDescription(region.getBounds()));

                    // Set it into the image
                    image.setRegion(null, region, 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 () {

                                // Clear this region
                                region.makeEmpty();

                                // Show its properties
                                console.info("IsEmpty: " + region.IsEmpty + "\nBounds: ", LeadRectHelper.getStringDescription(region.getBounds()));

                                // Set it into the image and fill again with red, notice
                                // that this will fill the whole image since
                                // the region is now empty
                                image.setRegion(null, region, RasterRegionCombineMode.set);

                                cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.red));
                                cmd.run(image);

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

   // 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))
   {
      // Create a new rectangular RasterRegion
      using(RasterRegion region = new RasterRegion(LeadRectHelper.Create(20, 30, 100, 200)))
      {
         // Show this region properties
         Debug.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, LeadRectHelper.GetStringDescription(region.GetBounds()));

         // Set it 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(destFileName1);
         ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
         await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 0);

         // Clear this region
         region.MakeEmpty();

         // Show its properties
         Debug.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, LeadRectHelper.GetStringDescription(region.GetBounds()));

         // Set it into the image and fill again with red, notice
         // that this will fill the whole image since
         // the region is now empty
         image.SetRegion(null, region, RasterRegionCombineMode.Set);

         cmd = new FillCommand(RasterColorHelper.FromKnownColor(RasterKnownColor.Red));
         cmd.Run(image);

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

   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 Members
Leadtools Namespace

 

 


Products | Support | Contact Us | Copyright Notices

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