LEADTOOLS GDI/GDI+(Leadtools.Drawingアセンブリ)

フレームを表示

RasterRegionConverterクラス






メンバ 
LEADTOOLS Leadtools.RasterRegionとGDI HRGNとSystem.Drawing(GDI+)System.Drawing.Regionオブジェクトの間で変換します。
オブジェクトモデル
構文
public static class RasterRegionConverter 
'Declaration
 
Public MustInherit NotInheritable Class RasterRegionConverter 
'Usage
 
Dim instance As RasterRegionConverter
public ref class RasterRegionConverter abstract sealed 
解説

このクラスを使用すると、LEADTOOLS Leadtools.RasterRegionオブジェクトとGDI HRGNまたはSystem.Drawing(GDI+)System.Drawing.Regionオブジェクトの間で簡単に変換できます。

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

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

サンプル
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Drawing
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

<TestMethod()> _
Public Sub RasterRegionConverterExample()
   ' Load an image 
   Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
   Dim dstFileName1 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_Ellipse.jpg"
   Dim dstFileName2 As String = LeadtoolsExamples.Common.ImagesPath.Path + "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 GDI+, create an elliptical region
   Dim gdipRegion As Region

   Using path As New GraphicsPath()
      path.AddEllipse(100, 200, 400, 300)
      gdipRegion = New Region(path)
   End Using

   ' Create a RasterRegion from this region
   Using region As RasterRegion = RasterRegionConverter.ConvertFromRegion(gdipRegion)
      ' Add this region to the image
      image.SetRegion(Nothing, region, RasterRegionCombineMode.Set)
   End Using

   gdipRegion.Dispose()

   ' 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 GDI+ region from the image
   Using region As RasterRegion = image.GetRegion(Nothing)
      ' Convert it to GDI+
      gdipRegion = RasterRegionConverter.ConvertToRegion(region, Nothing)
   End Using

   ' Move the region 100 pixels to the right and bottom
   gdipRegion.Translate(100, 100)

   ' Re-set it into the image, fill again and save
   ' Create a RasterRegion from this region
   Using region As RasterRegion = RasterRegionConverter.ConvertFromRegion(gdipRegion)
      ' Add this region to the image
      image.SetRegion(Nothing, region, RasterRegionCombineMode.Set)
   End Using

   gdipRegion.Dispose()

   ' 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
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

[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 GDI+, create an elliptical region
   Region gdipRegion;

   using(GraphicsPath path = new GraphicsPath())
   {
      path.AddEllipse(100, 200, 400, 300);
      gdipRegion = new Region(path);
   }

   // Create a RasterRegion from this region
   using(RasterRegion region = RasterRegionConverter.ConvertFromRegion(gdipRegion))
   {
      // Add this region to the image
      image.SetRegion(null, region, RasterRegionCombineMode.Set);
   }

   gdipRegion.Dispose();

   // 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 GDI+ region from the image
   using(RasterRegion region = image.GetRegion(null))
   {
      // Convert it to GDI+
      gdipRegion = RasterRegionConverter.ConvertToRegion(region, null);
   }

   // Move the region 100 pixels to the right and bottom
   gdipRegion.Translate(100, 100);

   // Re-set it into the image, fill again and save
   // Create a RasterRegion from this region
   using(RasterRegion region = RasterRegionConverter.ConvertFromRegion(gdipRegion))
   {
      // Add this region to the image
      image.SetRegion(null, region, RasterRegionCombineMode.Set);
   }

   gdipRegion.Dispose();

   // 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";
}
必要条件

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

参照

参照

RasterRegionConverterメンバ
Leadtools.Drawing名前空間