Leadtools Namespace : RasterRegion Class |
public class RasterRegion : System.IDisposable
'Declaration Public Class RasterRegion Implements System.IDisposable
'Usage Dim instance As RasterRegion
public sealed class RasterRegion : IClosable //In WinRT the IDisposable interface is replaced by IClosable
@interface LTRasterRegion : NSObject
public class RasterRegion
function Leadtools.RasterRegion()
public ref class RasterRegion : public System.IDisposable
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+, WPF and Silverlight.
To convert a LEADTOOLS RasterRegion object to/from a device dependent region, you can use the following helper classes:
The RasterRegion class implements the System.IDisposable interface, so you must call System.IDisposable.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.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Public Sub RasterRegionExample() Dim codecs As New RasterCodecs() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim destFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion1.bmp") Dim destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_WithRegion2.bmp") ' Load the source image Using image As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1) ' Create a new rectangular RasterRegion Using region As 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(Nothing, region, RasterRegionCombineMode.Set) ' Fill the image with a color and save it to disk to show the region Dim cmd As 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(Nothing, region, RasterRegionCombineMode.Set) cmd = New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red)) cmd.Run(image) codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 24) End Using End Using codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; public void RasterRegionExample() { string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp"); string destFileName1 = Path.Combine(ImagesPath.Path, "Image1_WithRegion1.bmp"); string destFileName2 = Path.Combine(ImagesPath.Path, "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); } } } }
RasterRegionExamples.prototype.RasterRegionExample = function () { Tools.SetLicense(); with (Leadtools) { with (Leadtools.Codecs) { var codecs = new RasterCodecs(); var srcFileName = "Assets\\Image1.cmp"; var destFileName1 = "Image1_WithRegion1.bmp"; var destFileName2 = "Image1_WithRegion2.bmp"; var image; var region; // Load the source image return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) { return codecs.loadAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.bgr, 1, 1) }) .then(function (img) { image = img; // Create a new rectangular RasterRegion region = new RasterRegion(LeadRectHelper.create(20, 30, 100, 200)); // Show this region properties console.info("IsEmpty: " + region.isEmpty + "\nBounds: " + LeadRectHelper.getStringDescription(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 var cmd = new Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.yellow)); cmd.run(image); return Tools.AppLocalFolder().createFileAsync(destFileName1) }) .then(function (saveFile) { var saveStream = LeadStreamFactory.create(saveFile); return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 0) }) .then(function () { // Clear this region region.makeEmpty(); // Show its properties console.info("IsEmpty: " + region.IsEmpty + "\nBounds: ", LeadRectHelper.getStringDescription(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 Leadtools.ImageProcessing.FillCommand(RasterColorHelper.fromKnownColor(RasterKnownColor.red)); cmd.run(image); return Tools.AppLocalFolder().createFileAsync(destFileName2) }) .then(function (saveFile) { var saveStream = LeadStreamFactory.create(saveFile); return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 0) }) .then(function () { image.close(); region.close(); codecs.close(); }); } } }
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; public async Task RasterRegionExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName = @"Assets\Image1.cmp"; string destFileName1 = "Image1_WithRegion1.bmp"; string destFileName2 = "Image1_WithRegion2.bmp"; // Load the source image StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName); ; using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile), 0, CodecsLoadByteOrder.Bgr, 1, 1)) { // Create a new rectangular RasterRegion using(RasterRegion region = new RasterRegion(LeadRectHelper.Create(20, 30, 100, 200))) { // Show this region properties Debug.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, LeadRectHelper.GetStringDescription(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(RasterColorHelper.FromKnownColor(RasterKnownColor.Yellow)); cmd.Run(image); StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName1); ILeadStream saveStream = LeadStreamFactory.Create(saveFile); await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 0); // Clear this region region.MakeEmpty(); // Show its properties Debug.WriteLine("IsEmpty: {0}\nBounds: {1}", region.IsEmpty, LeadRectHelper.GetStringDescription(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(RasterColorHelper.FromKnownColor(RasterKnownColor.Red)); cmd.Run(image); saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName2); saveStream = LeadStreamFactory.Create(saveFile); await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 0); } } codecs.Dispose(); }