LEADTOOLS (Leadtools assembly)

RasterRegion Class

Show in webframe
Example 







Members 
Describes a region of interest in a RasterImage object.
Object Model
Syntax
public class RasterRegion : System.IDisposable  
'Declaration
 
Public Class RasterRegion 
   Implements System.IDisposable 
'Usage
 
Dim instance As RasterRegion
@interface LTRasterRegion : NSObject
public class 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
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing

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
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;

      
public void RasterRegionExample()
{
   string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
   string destFileName1 = Path.Combine(ImagesPath.Path, "Image1_WithRegion1.bmp");
   string destFileName2 = Path.Combine(ImagesPath.Path, "Image1_WithRegion2.bmp");
   using (RasterCodecs codecs = new RasterCodecs())
   {
      // 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);
         }
      }
   }
}
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();
                            });
        }
    }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;

      
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

See Also

Reference

RasterRegion Members
Leadtools Namespace

 

 


Products | Support | Contact Us | Copyright Notices

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