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
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.
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
public void RasterRegionExample() { RasterCodecs codecs = new RasterCodecs(); 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"); // 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); } } codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
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(); }); } } }
[TestMethod] 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(); }
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