←Select platform

Combine(RasterRegion,RasterRegionCombineMode) Method

Summary
Updates this RasterRegion to a combination of itself and the specified RasterRegion
Syntax
C#
Objective-C
C++/CLI
Java
Python
- (BOOL)combineWithRegion:(LTRasterRegion *)region 
              combineMode:(LTRasterRegionCombineMode)combineMode 
                    error:(NSError **)error 
def Combine(self,combineMode): 

Parameters

region
The RasterRegion 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
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void RasterRegionCombineRegionExample() 
{ 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_CombineRegion.bmp"); 
 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      // 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 region1 = image.GetRegion(null); 
         image.MakeRegionEmpty(); 
 
         // Add a smaller elliptical region 
         image.AddEllipseToRegion(null, new LeadRect(0, 0, image.ImageWidth / 4, image.ImageHeight / 4), RasterRegionCombineMode.Set); 
 
         // Get this region 
         RasterRegion region2 = image.GetRegion(null); 
         image.MakeRegionEmpty(); 
 
         // Combine both regions to contain only the difference between the two 
         region1.Combine(region2, RasterRegionCombineMode.Xor); 
         region2.Dispose(); 
 
         // Set this region to the image and fill it with yellow 
         image.SetRegion(null, region1, RasterRegionCombineMode.Set); 
         region1.Dispose(); 
 
         FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)); 
         cmd.Run(image); 
 
         codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import static org.junit.Assert.assertTrue; 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.FillCommand; 
 
 
public void rasterRegionCombineRegionExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1_CombineRegion.bmp"); 
 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load the source image 
   RasterImage image = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
   // Add a small elliptical region 
   image.addEllipseToRegion(null, new LeadRect(0, 0, image.getImageWidth() / 3, image.getImageHeight() / 3), 
         RasterRegionCombineMode.SET); 
 
   // Get this region 
   RasterRegion region1 = image.getRegion(null); 
   image.makeRegionEmpty(); 
 
   // Add a smaller elliptical region 
   image.addEllipseToRegion(null, new LeadRect(0, 0, image.getImageWidth() / 4, image.getImageHeight() / 4), 
         RasterRegionCombineMode.SET); 
 
   // Get this region 
   RasterRegion region2 = image.getRegion(null); 
   image.makeRegionEmpty(); 
 
   // Combine both regions to contain only the difference between the two 
   region1.combine(region2, RasterRegionCombineMode.XOR); 
   region2.dispose(); 
 
   // Set this region to the image and fill it with yellow 
   image.setRegion(null, region1, RasterRegionCombineMode.SET); 
   region1.dispose(); 
   FillCommand cmd = new FillCommand(RasterColor.fromKnownColor(RasterKnownColor.YELLOW)); 
   cmd.run(image); 
 
   codecs.save(image, destFileName, RasterImageFormat.BMP, 24); 
 
   assertTrue("Image unsuccessfully saved", new File(destFileName).exists()); 
   System.out.println("Command run and image saved to " + destFileName); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.5.22
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.