LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

Combine(LeadRect,RasterRegionCombineMode) Method

Example 





The LeadRect structure to combine with this RasterRegion.
One of the RasterRegionCombineMode enumeration members that describes the combine method to use. This cannot be RasterRegionCombineMode.AndNotImage or RasterRegionCombineMode.AndNotRegion. Using any of these combine method will result in an exception.
Updates this RasterRegion to a combination of itself and the specified LeadRect .NET support Silverlight support WinRT support
Syntax
public void Combine( 
   LeadRect rect,
   RasterRegionCombineMode combineMode
)
'Declaration
 
Public Overloads Sub Combine( _
   ByVal rect As LeadRect, _
   ByVal combineMode As RasterRegionCombineMode _
) 
'Usage
 
Dim instance As RasterRegion
Dim rect As LeadRect
Dim combineMode As RasterRegionCombineMode
 
instance.Combine(rect, combineMode)
public void Combine( 
   LeadRect rect,
   RasterRegionCombineMode combineMode
)
 function Leadtools.RasterRegion.Combine(LeadRect,RasterRegionCombineMode)( 
   rect ,
   combineMode 
)
public:
void Combine( 
   LeadRect rect,
   RasterRegionCombineMode combineMode
) 

Parameters

rect
The LeadRect structure to combine with this RasterRegion.
combineMode
One of the RasterRegionCombineMode enumeration members that describes the combine method to use. This cannot be RasterRegionCombineMode.AndNotImage or RasterRegionCombineMode.AndNotRegion. Using any of these combine method will result in an exception.
Remarks

For more information, refer to RasterRegionCombineMode.

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

      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_CombineRect.bmp")

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

         ' Get this region
         Dim region As RasterRegion = image.GetRegion(Nothing)
         image.MakeRegionEmpty()

         ' Create a rectangle that fits in this region area
         Dim rc As New LeadRect(0, 0, image.ImageWidth \ 4, image.ImageHeight \ 4)

         ' Combine the region to contain only the difference between the it and the rectangle
         region.Combine(rc, RasterRegionCombineMode.Xor)

         ' Set this region to the image and fill it with yellow
         image.SetRegion(Nothing, region, RasterRegionCombineMode.Set)

         Dim cmd As New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow))
         cmd.Run(image)

         codecs.Save(image, destFileName, 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 RasterRegionCombineRectExample()
   {
      RasterCodecs codecs = new RasterCodecs();

      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_CombineRect.bmp");

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

         // Get this region
         RasterRegion region = image.GetRegion(null);
         image.MakeRegionEmpty();

         // Create a rectangle that fits in this region area
         LeadRect rc = new LeadRect(0, 0, image.ImageWidth / 4, image.ImageHeight / 4);

         // Combine the region to contain only the difference between the it and the rectangle
         region.Combine(rc, RasterRegionCombineMode.Xor);

         // Set this region to the image and fill it with yellow
         image.SetRegion(null, region, RasterRegionCombineMode.Set);

         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow));
         cmd.Run(image);

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

      codecs.Dispose();
   }

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

            var srcFileName = "Assets\\Image1.cmp";
            var destFileName = "Image1_CombineRect.bmp";
            var image;
            // Load the source image
            return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
                return codecs.loadAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.bgrOrGray, 1, 1)
            })
                .then(function (img) {
                    image = img;

                    // Add a small elliptical region
                    image.addEllipseToRegion(null, LeadRectHelper.create(0, 0, image.imageWidth / 3, image.imageHeight / 3), RasterRegionCombineMode.set);

                    // Get this region
                    var region = image.getRegion(null);
                    image.makeRegionEmpty();

                    // Create a rectangle that fits in this region area
                    var rc = LeadRectHelper.create(0, 0, image.imageWidth / 4, image.imageHeight / 4);

                    // Combine the region to contain only the difference between the it and the rectangle
                    region.combine(rc, RasterRegionCombineMode.xor);

                    // Set this region to the image and fill it with yellow
                    image.setRegion(null, region, RasterRegionCombineMode.set);

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

                    return Tools.AppLocalFolder().createFileAsync(destFileName)
                })
                .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 RasterRegionCombineRectExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName = "Image1_CombineRect.bmp";

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

      // Get this region
      RasterRegion region = image.GetRegion(null);
      image.MakeRegionEmpty();

      // Create a rectangle that fits in this region area
      LeadRect rc = LeadRectHelper.Create(0, 0, image.ImageWidth / 4, image.ImageHeight / 4);

      // Combine the region to contain only the difference between the it and the rectangle
      region.Combine(rc, RasterRegionCombineMode.Xor);

      // Set this region to the image and fill it with yellow
      image.SetRegion(null, region, RasterRegionCombineMode.Set);

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

      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
      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
Overload List

 

 


Products | Support | Contact Us | Copyright Notices

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