LEADTOOLS WPFとSilverlight(Leadtools.Windows.Mediaアセンブリ)

フレームを表示

RasterRegionConverterクラス






メンバ 
LEADTOOLS Leadtools.RasterRegionとWindows Presentation Foundation(WPF)間の転換またはSilverlight System.Windows.Media.Geometryは、反対します。
オブジェクトモデル
構文
public static class RasterRegionConverter 
'Declaration
 
Public MustInherit NotInheritable Class RasterRegionConverter 
'Usage
 
Dim instance As RasterRegionConverter

            

            
public ref class RasterRegionConverter abstract sealed 
解説

このクラスを使用すると、LEADTOOLS Leadtools.RasterRegionオブジェクトとWPF/Silverlight System.Windows.Media.Geometryオブジェクトの間で簡単に変換できます。

LEADTOOLS Leadtools.RasterRegionクラスは、GDI、GDI+、WPFとSilverlightなどのLEADTOOLSによってサポートされる任意のプラットホームで使われることができるLeadtools.RasterImageで、関心領域のプラットホームから独立した表現を提供します。LEADTOOLS Leadtools.RasterRegionオブジェクトとWPF/Silverlight System.Windows.Media.Geometryオブジェクトの間で変換するには、このクラスを使用します。

詳細については、「RasterImageとWPF/Silverlight」を参照してください。

サンプル
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Media

<TestMethod()> _
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
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;

[TestMethod]
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";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;

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();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Media

<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
必要条件

ターゲットプラットホーム

参照

参照

RasterRegionConverterメンバ
Leadtools.Windows.Media名前空間