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

フレームを表示

AddGdiDataToRegionメソッド






ソースimage。
表示座標と画像座標の間で変換するために使用するLeadtools.RasterRegionXFormオブジェクト。このパラメーターにNull(Visual BasicではNothing)を指定すると、スカラーフィールドのデフォルトは1に、オフセットのデフォルトは0に、ビューの視点のデフォルトは画像ビューの視点になります。
addにリージョンを定義するSystem.Byteの配列。
Byteは、データが開始するデータにオフセットしました。
定義されている場合、既存の画像リージョンに関して実施するアクション。
指定されたGDI+リージョンデータを使用して、LEADTOOLS imageリージョンを作成するか、更新します。
構文
'Declaration
 
Public Shared Sub AddGdiDataToRegion( _
   ByVal image As RasterImage, _
   ByVal xform As RasterRegionXForm, _
   ByVal data() As Byte, _
   ByVal dataOffset As Integer, _
   ByVal combineMode As RasterRegionCombineMode _
) 
'Usage
 
Dim image As RasterImage
Dim xform As RasterRegionXForm
Dim data() As Byte
Dim dataOffset As Integer
Dim combineMode As RasterRegionCombineMode
 
RasterRegionConverter.AddGdiDataToRegion(image, xform, data, dataOffset, combineMode)

パラメーター

image
ソースimage。
xform
表示座標と画像座標の間で変換するために使用するLeadtools.RasterRegionXFormオブジェクト。このパラメーターにNull(Visual BasicではNothing)を指定すると、スカラーフィールドのデフォルトは1に、オフセットのデフォルトは0に、ビューの視点のデフォルトは画像ビューの視点になります。
データ
addにリージョンを定義するSystem.Byteの配列。
dataOffset
Byteは、データが開始するデータにオフセットしました。
combineMode
定義されている場合、既存の画像リージョンに関して実施するアクション。
解説

既存のリージョンを更新するために、新しいリージョンがどのようにcombineModeパラメーターを用いて既存のものと結合されることになっているかについて指定します。詳細については、「Leadtools.RasterRegionCombineMode。」を参照してください。

このメソッドは、GetGdiRegionDataメソッドを用いて1つのRasterImageからもう一つへリージョンデータをコピーするのに用いられることができます。

GDI+ System.Drawing.Drawing2D.RegionDataオブジェクトとしてリージョンデータを取得するために、GetGdiPlusRegionDataAddGdiPlusDataToRegionを使います。

プラットホームから独立したbyte配列としてリージョンデータを取得するために、RasterRegion.GetDataRasterRegion.SetDataを使います。

詳細については、「リージョンの作成」を参照してください。

詳細については、「リージョンの保存」を参照してください。

詳細については、「既存のリージョンの操作」を参照してください。

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

サンプル

このサンプルは、Leadtools.RasterImageに楕円形のリージョンを追加するためにAddGdiDataToRegionGetGdiRegionDataを使って、GDI byte配列オブジェクトとしてリージョンを取得して、そして、もう一つのimageでそれをリセットします。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Drawing
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

<TestMethod()> _
Public Sub GdiRegionDataExample()
   Dim codecs As New RasterCodecs()
   Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
   Dim destFileName1 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_GdiRegionDataOriginal.bmp"
   Dim regionFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_GdiRegionData.bin"
   Dim destFileName2 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_GdiRegionDataLoaded.bmp"

   RegionDataBefore(codecs, srcFileName, destFileName1, regionFileName)
   RegionDataAfter(codecs, srcFileName, destFileName2, regionFileName)

   codecs.Dispose()
End Sub

Private Sub RegionDataBefore(ByVal codecs As RasterCodecs, ByVal imageFileName As String, ByVal destFileName As String, ByVal regionFileName As String)
   ' Load the image
   Using image As RasterImage = codecs.Load(imageFileName)
      ' Add a polygon region to the image
      Dim x1 As Integer = image.ImageWidth \ 4
      Dim y1 As Integer = image.ImageHeight \ 4
      Dim x2 As Integer = image.ImageWidth \ 3
      Dim y2 As Integer = image.ImageHeight \ 3

      Dim pts() As LeadPoint = _
      { _
         New LeadPoint(x1, y1), _
         New LeadPoint(x2, y1), _
         New LeadPoint(x1, y2), _
         New LeadPoint(x2, y2) _
      }

      image.AddPolygonToRegion(Nothing, pts, LeadFillMode.Winding, RasterRegionCombineMode.Set)

      ' Draw something on the image
      Dim command As New InvertCommand()
      command.Run(image)

      ' Save the region and the image
      codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)

      Dim data() As Byte = RasterRegionConverter.GetGdiRegionData(image, Nothing)
      Using fs As FileStream = File.Create(regionFileName)
         fs.Write(data, 0, data.Length)
      End Using
   End Using
End Sub

Private Sub RegionDataAfter(ByVal codecs As RasterCodecs, ByVal imageFileName As String, ByVal destFileName As String, ByVal regionFileName As String)
   ' Load the image
   Using image As RasterImage = codecs.Load(imageFileName)
      ' Load the region from the file and apply it to the image
      Dim data() As Byte

      Using fs As FileStream = File.OpenRead(regionFileName)
         ReDim data(CType(fs.Length, Integer) - 1)
         fs.Read(data, 0, data.Length)
      End Using

      RasterRegionConverter.AddGdiDataToRegion(image, Nothing, data, 0, RasterRegionCombineMode.Set)

      ' Draw something on the image
      Dim command As New InvertCommand()
      command.Run(image)

      ' Save the image
      codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)
   End Using
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

[TestMethod]
public void GdiRegionDataExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
   string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_GdiRegionDataOriginal.bmp");
   string regionFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_GdiRegionData.bin");
   string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_GdiRegionDataLoaded.bmp");

   RegionDataBefore(codecs, srcFileName, destFileName1, regionFileName);
   RegionDataAfter(codecs, srcFileName, destFileName2, regionFileName);

   codecs.Dispose();
}

private void RegionDataBefore(RasterCodecs codecs, string imageFileName, string destFileName, string regionFileName)
{
   // Load the image
   using(RasterImage image = codecs.Load(imageFileName))
   {
      // Add a polygon region to the image
      int x1 = image.ImageWidth / 4;
      int y1 = image.ImageHeight / 4;
      int x2 = image.ImageWidth / 3;
      int y2 = image.ImageHeight / 3;

      LeadPoint[] pts =
      {
         new LeadPoint(x1, y1),
         new LeadPoint(x2, y1),
         new LeadPoint(x1, y2),
         new LeadPoint(x2, y2)
      };

      image.AddPolygonToRegion(null, pts, LeadFillMode.Winding, RasterRegionCombineMode.Set);

      // Draw something on the image
      InvertCommand command = new InvertCommand();
      command.Run(image);

      // Save the region and the image
      codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);

      byte[] data = RasterRegionConverter.GetGdiRegionData(image, null);
      using(FileStream fs = File.Create(regionFileName))
      {
         fs.Write(data, 0, data.Length);
      }
   }
}

private void RegionDataAfter(RasterCodecs codecs, string imageFileName, string destFileName, string regionFileName)
{
   // Load the image
   using(RasterImage image = codecs.Load(imageFileName))
   {
      // Load the region from the file and apply it to the image
      byte[] data;

      using(FileStream fs = File.OpenRead(regionFileName))
      {
         data = new byte[fs.Length];
         fs.Read(data, 0, data.Length);
      }

      RasterRegionConverter.AddGdiDataToRegion(image, null, data, 0, RasterRegionCombineMode.Set);

      // Draw something on the image
      InvertCommand command = new InvertCommand();
      command.Run(image);

      // Save the image
      codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
必要条件

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

参照

参照

RasterRegionConverterクラス
RasterRegionConverterメンバ