LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

HasRegion Property

Example 





Determines whether this RasterImage has a region. .NET support Silverlight support WinRT support
Syntax
public bool HasRegion {get;}
'Declaration
 
Public ReadOnly Property HasRegion As Boolean
'Usage
 
Dim instance As RasterImage
Dim value As Boolean
 
value = instance.HasRegion
public bool HasRegion {get;}
 get_HasRegion(); 
public:
property bool HasRegion {
   bool get();
}

Property Value

true if this RasterImage has a region; false, otherwise.
Remarks

When an image has a region, the LEADTOOLS methods that modify the pixel values (for example Leadtools.ImageProcessing.Color.PosterizeCommand) act on the region, rather than the whole image. In addition, the LEADTOOLS methods that flip, reverse, rotate, shear, or resize an image also transform the region to match the image. For example, if you were to shear the image that had a rectangular region, the region would become a parallelogram.

To remove an image region, use MakeRegionEmpty.

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

Example
 
Public Sub RegionExample()
      Dim codecs As RasterCodecs = New RasterCodecs()

      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim destFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_InvertRegion.bmp")
      Dim destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_InvertNoRegion.bmp")

      ' Load the image
      Dim image As RasterImage = codecs.Load(srcFileName)

      ' The image should have no region
      Console.WriteLine("After loading, HasRegion = {0}", image.HasRegion)
      Debug.Assert((Not image.HasRegion))

      ' Add a region to the image
      Dim rc As LeadRect = New LeadRect(0, 0, image.Width \ 4, image.Height \ 4)
      image.AddEllipseToRegion(Nothing, rc, RasterRegionCombineMode.Set)

      ' The image should have a region now
      Console.WriteLine("After AddEllipseToRegion, HasRegion = {0}", image.HasRegion)
      Debug.Assert(image.HasRegion)

      ' Invert this image and save it to a file
      Dim command As InvertCommand = New InvertCommand()
      command.Run(image)
      codecs.Save(image, destFileName1, RasterImageFormat.Bmp, 24)

      ' Get rid of the region
      image.MakeRegionEmpty()

      ' The image should not have a region now
      Console.WriteLine("After MakeRegionEmpty, HasRegion = {0}", image.HasRegion)
      Debug.Assert((Not image.HasRegion))

      ' Invert again and save it
      command.Run(image)
      codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24)

      image.Dispose()
      codecs.Dispose()
   End Sub

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

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

      // Load the image
      RasterImage image = codecs.Load(srcFileName);

      // The image should have no region
      Console.WriteLine("After loading, HasRegion = {0}", image.HasRegion);
      Debug.Assert(!image.HasRegion);

      // Add a region to the image
      LeadRect rc = new LeadRect(0, 0, image.Width / 4, image.Height / 4);
      image.AddEllipseToRegion(null, rc, RasterRegionCombineMode.Set);

      // The image should have a region now
      Console.WriteLine("After AddEllipseToRegion, HasRegion = {0}", image.HasRegion);
      Debug.Assert(image.HasRegion);

      // Invert this image and save it to a file
      InvertCommand command = new InvertCommand();
      command.Run(image);
      codecs.Save(image, destFileName1, RasterImageFormat.Bmp, 24);

      // Get rid of the region
      image.MakeRegionEmpty();

      // The image should not have a region now
      Console.WriteLine("After MakeRegionEmpty, HasRegion = {0}", image.HasRegion);
      Debug.Assert(!image.HasRegion);

      // Invert again and save it
      command.Run(image);
      codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24);

      image.Dispose();
      codecs.Dispose();
   }

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

         var srcFileName = "Assets\\Image1.cmp";
         var destFileName1 = "Image1_InvertRegion.bmp";
         var destFileName2 = "Image1_InvertNoRegion.bmp";
         var image = null ;
         // Load the image
         return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
            return codecs.loadAsync(LeadStreamFactory.create(loadFile));
         })
         .then(function (img) {
            image = img;
            // The image should have no region
            console.info("After loading, HasRegion = ", image.hasRegion);
            console.assert(!image.HasRegion);

            // Add a region to the image
            var rc = LeadRectHelper.create(0, 0, image.width / 4, image.height / 4);
            image.addEllipseToRegion(null, rc, RasterRegionCombineMode.set);

            // The image should have a region now
            console.info("After AddEllipseToRegion, HasRegion = ", image.hasRegion);
            console.assert(image.hasRegion);

            // Invert this image and save it to a file
            var command = new Leadtools.ImageProcessing.Color.InvertCommand();
            command.run(image);
            return Tools.AppLocalFolder().createFileAsync(destFileName1);
         })
         .then(function (saveFile) {
            var saveStream = LeadStreamFactory.create(saveFile);
            return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 24);
         })
         .then(function () {

            // Get rid of the region
            image.makeRegionEmpty();

            // The image should not have a region now
            console.info("After MakeRegionEmpty, HasRegion = ", image.hasRegion);
            console.assert(!image.hasRegion);

            // Invert again and save it
            var command = new Leadtools.ImageProcessing.Color.InvertCommand();
            command.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 RegionExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName1 = @"Image1_InvertRegion.bmp";
   string destFileName2 = @"Image1_InvertNoRegion.bmp";

   // Load the image
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));

   // The image should have no region
   Debug.WriteLine("After loading, HasRegion = {0}", image.HasRegion);
   Assert.IsTrue(!image.HasRegion);

   // Add a region to the image
   LeadRect rc = LeadRectHelper.Create(0, 0, image.Width / 4, image.Height / 4);
   image.AddEllipseToRegion(null, rc, RasterRegionCombineMode.Set);

   // The image should have a region now
   Debug.WriteLine("After AddEllipseToRegion, HasRegion = {0}", image.HasRegion);
   Assert.IsTrue(image.HasRegion);

   // Invert this image and save it to a file
   InvertCommand command = new InvertCommand();
   command.Run(image);
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName1);
   ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
   await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 24);

   // Get rid of the region
   image.MakeRegionEmpty();

   // The image should not have a region now
   Debug.WriteLine("After MakeRegionEmpty, HasRegion = {0}", image.HasRegion);
   Assert.IsTrue(!image.HasRegion);

   // Invert again and save it
   command.Run(image);
   saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName2);
   saveStream = LeadStreamFactory.Create(saveFile);
   await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 24);

   image.Dispose();
   codecs.Dispose();
}
public void RegionExample(RasterImage image, Stream destStream1, Stream destStream2)
{
   RasterCodecs codecs = new RasterCodecs();
   // The image should have no region
   Debug.WriteLine("After loading, HasRegion = {0}", image.HasRegion);
   Debug.Assert(!image.HasRegion);

   // Add a region to the image
   LeadRect rc = new LeadRect(0, 0, image.Width / 4, image.Height / 4);
   image.AddRectangleToRegion(null, rc, RasterRegionCombineMode.Set);

   // The image should have a region now
   Debug.WriteLine("After AddRectangleToRegion, HasRegion = {0}", image.HasRegion);
   Debug.Assert(image.HasRegion);

   // Invert this image and save it to a file
   InvertCommand command = new InvertCommand();
   command.Run(image);
   codecs.Save(image, destStream1, RasterImageFormat.Bmp, 0);

   // Get rid of the region
   image.MakeRegionEmpty();

   // The image should not have a region now
   Debug.WriteLine("After MakeRegionEmpty, HasRegion = {0}", image.HasRegion);
   Debug.Assert(!image.HasRegion);

   // Invert again and save it
   command.Run(image);
   codecs.Save(image, destStream2, RasterImageFormat.Bmp, 0);

   image.Dispose();
}
Public Sub RegionExample(ByVal image As RasterImage, ByVal destStream1 As Stream, ByVal destStream2 As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()
   ' The image should have no region
   Debug.WriteLine("After loading, HasRegion = {0}", image.HasRegion)
   Debug.Assert((Not image.HasRegion))

   ' Add a region to the image
   Dim rc As LeadRect = New LeadRect(0, 0, image.Width / 4, image.Height / 4)
   image.AddRectangleToRegion(Nothing, rc, RasterRegionCombineMode.Set)

   ' The image should have a region now
   Debug.WriteLine("After AddRectangleToRegion, HasRegion = {0}", image.HasRegion)
   Debug.Assert(image.HasRegion)

   ' Invert this image and save it to a file
   Dim command As InvertCommand = New InvertCommand()
   command.Run(image)
   codecs.Save(image, destStream1, RasterImageFormat.Bmp, 0)

   ' Get rid of the region
   image.MakeRegionEmpty()

   ' The image should not have a region now
   Debug.WriteLine("After MakeRegionEmpty, HasRegion = {0}", image.HasRegion)
   Debug.Assert((Not image.HasRegion))

   ' Invert again and save it
   command.Run(image)
   codecs.Save(image, destStream2, RasterImageFormat.Bmp, 0)

   image.Dispose()
End Sub
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

RasterImage Class
RasterImage Members

 

 


Products | Support | Contact Us | Copyright Notices

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