←Select platform

RasterRegion Class

Summary
Describes a region of interest in a RasterImage object.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class RasterRegion : IDisposable 
@interface LTRasterRegion : NSObject 
public class RasterRegion 
public ref class RasterRegion : public System.IDisposable   
class RasterRegion(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+, and WPF.

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

The RasterRegion class implements the IDisposable interface, so you must call 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
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void RasterRegionExample() 
{ 
   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"); 
 
   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); 
         } 
      } 
   } 
} 
 
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 rasterRegionExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp"); 
   String destFileName1 = combine(LEAD_VARS_IMAGES_DIR, "Image1_WithRegion1.bmp"); 
   String destFileName2 = combine(LEAD_VARS_IMAGES_DIR, "Image1_WithRegion2.bmp"); 
 
   RasterCodecs codecs = new RasterCodecs(); 
   // Load the source image 
   RasterImage image = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
   // Create a new rectangular RasterRegion 
   RasterRegion region = new RasterRegion(new LeadRect(20, 30, 100, 200)); 
 
   // Show this region properties 
   System.out.println("IsEmpty: " + region.isEmpty() + "\nBounds: " + 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 
   System.out.println("IsEmpty: " + region.isEmpty() + "\nBounds: " + 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); 
 
   assertTrue("Image unsuccessfully saved", (new File(destFileName2)).exists()); 
   System.out.println("Command run and image saved to " + destFileName2); 
} 
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.