Leadtools.Windows.Media Namespace : RasterRegionConverter Class |
public static class RasterRegionConverter
'Declaration Public MustInherit NotInheritable Class RasterRegionConverter
'Usage Dim instance As RasterRegionConverter
public sealed static class RasterRegionConverter
function Leadtools.Windows.Media.RasterRegionConverter()
public ref class RasterRegionConverter abstract sealed
This class lets you easily convert between a LEADTOOLS Leadtools.RasterRegion object and a WPF/Silverlight System.Windows.Media.Geometry object.
The LEADTOOLS Leadtools.RasterRegion class provides a platform independent representation of an area of interest in a Leadtools.RasterImage that can be used in any platform supported by LEADTOOLS such as GDI, GDI+, WPF and Silverlight. Use this class To convert a LEADTOOLS Leadtools.RasterRegion object to/from a WPF/Silverlight System.Windows.Media.Geometry object.
For more information refer to RasterImage and WPF/Silverlight.
Public Sub RasterRegionConverterExample() ' Load an image Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim dstFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Ellipse.jpg") Dim dstFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_EllipseTranslated.jpg") Dim codecs As New RasterCodecs() Dim image As RasterImage = codecs.Load(srcFileName) ' We will add an ellipse region to the image ' Using WPF, create an elliptical geometry ' Create the ellipse geometry to add to the Path Dim ellipseGeometry As New EllipseGeometry() ellipseGeometry.Center = New Point(250, 250) ellipseGeometry.RadiusX = 200 ellipseGeometry.RadiusY = 150 Dim geometry As Geometry = ellipseGeometry ' Create a RasterRegion from this region Using region As RasterRegion = RasterRegionConverter.ConvertFromGeometry(geometry) ' Add this region to the image image.SetRegion(Nothing, region, RasterRegionCombineMode.Set) End Using ' Fill the image with a color Dim cmd As New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red)) cmd.Run(image) ' Save it codecs.Save(image, dstFileName1, RasterImageFormat.Jpeg, 24) ' Now get the WPF geometry from the image Using region As RasterRegion = image.GetRegion(Nothing) geometry = RasterRegionConverter.ConvertToGeometry(region, Nothing) End Using ' Move the geometry 100 pixels to the right and bottom geometry.Transform = New TranslateTransform(100, 100) ' Re-set it into the image, fill again and save ' Create a RasterRegion from this region Using region As RasterRegion = RasterRegionConverter.ConvertFromGeometry(geometry) ' Add this region to the image image.SetRegion(Nothing, region, RasterRegionCombineMode.Set) End Using ' Fill the image with a color cmd = New FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)) cmd.Run(image) ' Save it codecs.Save(image, dstFileName2, RasterImageFormat.Jpeg, 24) image.Dispose() codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void RasterRegionConverterExample() { // Load an image string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); string dstFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Ellipse.jpg"); string dstFileName2 = Path.Combine(LEAD_VARS.ImagesDir,"Image1_EllipseTranslated.jpg"); RasterCodecs codecs = new RasterCodecs(); RasterImage image = codecs.Load(srcFileName); // We will add an ellipse region to the image // Using WPF, create an elliptical geometry // Create the ellipse geometry to add to the Path EllipseGeometry ellipseGeometry = new EllipseGeometry(); ellipseGeometry.Center = new Point(250, 250); ellipseGeometry.RadiusX = 200; ellipseGeometry.RadiusY = 150; Geometry geometry = ellipseGeometry; // Create a RasterRegion from this region using(RasterRegion region = RasterRegionConverter.ConvertFromGeometry(geometry)) { // Add this region to the image image.SetRegion(null, region, RasterRegionCombineMode.Set); } // Fill the image with a color FillCommand cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Red)); cmd.Run(image); // Save it codecs.Save(image, dstFileName1, RasterImageFormat.Jpeg, 24); // Now get the WPF geometry from the image using(RasterRegion region = image.GetRegion(null)) { geometry = RasterRegionConverter.ConvertToGeometry(region, null); } // Move the geometry 100 pixels to the right and bottom geometry.Transform = new TranslateTransform(100, 100); // Re-set it into the image, fill again and save // Create a RasterRegion from this region using(RasterRegion region = RasterRegionConverter.ConvertFromGeometry(geometry)) { // Add this region to the image image.SetRegion(null, region, RasterRegionCombineMode.Set); } // Fill the image with a color cmd = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.Yellow)); cmd.Run(image); // Save it codecs.Save(image, dstFileName2, RasterImageFormat.Jpeg, 24); image.Dispose(); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
public void RasterRegionConverterExample() { // Load an image string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; RasterCodecs codecs = new RasterCodecs(); RasterImage image = codecs.Load(srcFileName); // We will add a region to the image RasterRegion region = new RasterRegion(new LeadRect(250, 250, 200, 150)); image.SetRegion(null, region, RasterRegionCombineMode.Set); // Now get the WPF geometry from the image Geometry geometry; using(RasterRegion rgn = image.GetRegion(null)) { geometry = RasterRegionConverter.ConvertToGeometry(region, null); // Create a Path to be drawn to the screen. System.Windows.Shapes.Path myPath = new System.Windows.Shapes.Path(); SolidColorBrush mySolidColorBrush = new SolidColorBrush(); mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255); myPath.Fill = mySolidColorBrush; myPath.Data = geometry; // Add path shape to the UI. StackPanel mainPanel = new StackPanel(); mainPanel.Children.Add(myPath); } image.Dispose(); }
<TestMethod> _ Public Sub RasterRegionConverterExample() ' Load an image Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "Image1.cmp" Dim codecs As RasterCodecs = New RasterCodecs() Dim image As RasterImage = codecs.Load(srcFileName) ' We will add a region to the image Dim region As RasterRegion = New RasterRegion(New LeadRect(250, 250, 200, 150)) image.SetRegion(Nothing, region, RasterRegionCombineMode.Set) ' Now get the WPF geometry from the image Dim geometry As Geometry Using rgn As RasterRegion = image.GetRegion(Nothing) geometry = RasterRegionConverter.ConvertToGeometry(region, Nothing) ' Create a Path to be drawn to the screen. Dim myPath As System.Windows.Shapes.Path = New System.Windows.Shapes.Path() Dim mySolidColorBrush As SolidColorBrush = New SolidColorBrush() mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255) myPath.Fill = mySolidColorBrush myPath.Data = geometry ' Add path shape to the UI. Dim mainPanel As StackPanel = New StackPanel() mainPanel.Children.Add(myPath) End Using image.Dispose() End Sub
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