←Select platform

ImageRegion Property

Summary
This property is updated with a shallow copy of the image that also has a region that contains the hole punches.
Syntax
C#
C++/CLI
Java
Python
public RasterImage ImageRegion { get; } 
public RasterImage getImageRegion(); 
public: 
property RasterImage^ ImageRegion { 
   RasterImage^ get(); 
} 
ImageRegion # get  (HolePunchRemoveCommand) 

Property Value

A shallow copy of the image that also has a region that contains the hole punches.

Remarks

If HolePunchRemoveCommandFlags.SingleRegion| HolePunchRemoveCommandFlags.LeadRegion has been set in the Flags property, then when HolePunchRemoveCommand returns, this property is updated with a shallow copy of the image that also has a region that contains the hole punches. So set Flags to HolePunchRemoveCommandFlags.SingleRegion| HolePunchRemoveCommandFlags.LeadRegion. It is the programmer's responsibility to dispose of the region when it is no longer needed.

Example

Run the HolePunchRemoveCommand on an image.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
public void ImageRegionPropertyExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif")); 
 
   // Prepare the command 
   HolePunchRemoveCommand command = new HolePunchRemoveCommand(); 
   command.HolePunchRemove += new EventHandler<HolePunchRemoveCommandEventArgs>(HolePunchRemoveEvent_S3); 
   command.Flags = HolePunchRemoveCommandFlags.UseDpi | HolePunchRemoveCommandFlags.UseSize | HolePunchRemoveCommandFlags.UseLocation | HolePunchRemoveCommandFlags.SingleRegion | HolePunchRemoveCommandFlags.LeadRegion; 
   command.Location = HolePunchRemoveCommandLocation.Left; 
   command.MaximumHoleHeight = image.Height; 
   command.MaximumHoleWidth = image.Width; 
   command.MinimumHoleHeight = 0; 
   command.MinimumHoleWidth = 0; 
   command.Run(image); 
 
} 
 
private void HolePunchRemoveEvent_S3(object sender, HolePunchRemoveCommandEventArgs e) 
{ 
   MessageBox.Show("Size " + "( " + e.BoundingRectangle.Left + ", " + e.BoundingRectangle.Top + ") - " + "( " + e.BoundingRectangle.Right + ", " + e.BoundingRectangle.Bottom + ")" + 
      "\n Hole Index " + e.HoleIndex.ToString() + 
      "\n Holes Total Count " + e.HoleTotalCount.ToString() + 
      "\n Black Count " + e.BlackCount.ToString() + 
      "\n White Count " + e.WhiteCount.ToString()); 
   e.Status = RemoveStatus.Remove; 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.*; 
 
 
public void imageRegionPropertyExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.setThrowExceptionsOnInvalidImages(true); 
 
   RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "Clean.tif"), 1, CodecsLoadByteOrder.BGR, 1, 1); 
 
   // Prepare the command 
   HolePunchRemoveCommand command = new HolePunchRemoveCommand(); 
   command.addHolePunchRemoveCommandListener(holePunchRemoveEvent_S3); 
   command.setFlags(HolePunchRemoveCommandFlags.USE_DPI.getValue() | HolePunchRemoveCommandFlags.USE_SIZE.getValue() 
         | HolePunchRemoveCommandFlags.USE_LOCATION.getValue() | HolePunchRemoveCommandFlags.SINGLE_REGION.getValue() 
         | HolePunchRemoveCommandFlags.LEAD_REGION.getValue()); 
   assertTrue(command.getFlags() >= 0); 
   command.setLocation(HolePunchRemoveCommandLocation.LEFT); 
   command.setMaximumHoleHeight(image.getHeight()); 
   command.setMaximumHoleWidth(image.getWidth()); 
   command.setMinimumHoleHeight(0); 
   command.setMinimumHoleWidth(0); 
   assertTrue(command.getLocation() == HolePunchRemoveCommandLocation.LEFT 
         && command.getMaximumHoleHeight() == image.getHeight() 
         && command.getMaximumHoleWidth() == image.getWidth() && command.getMinimumHoleHeight() == 0 
         && command.getMinimumHoleWidth() == 0); 
   command.run(image); 
 
   assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")).exists()); 
   System.out.println("Command run and image exported to: " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
} 
 
HolePunchRemoveCommandListener holePunchRemoveEvent_S3 = new HolePunchRemoveCommandListener() { 
   @Override 
   public void onHolePunchRemoveEvent(HolePunchRemoveCommandEvent e) { 
      System.out.println( 
            "Size " + "( " + e.getBoundingRectangle().getLeft() + ", " + e.getBoundingRectangle().getTop() + ") - " 
                  + "( " + e.getBoundingRectangle().getRight() + ", " + e.getBoundingRectangle().getBottom() + ")" + 
                  "\n Hole Index " + e.getHoleIndex() + 
                  "\n Holes Total Count " + e.getHoleTotalCount() + 
                  "\n Black Count " + e.getBlackCount() + 
                  "\n White Count " + e.getWhiteCount()); 
      e.setStatus(RemoveStatus.REMOVE); 
   } 
}; 
Requirements

Target Platforms

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

Leadtools.ImageProcessing.Core Assembly

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