LEADTOOLS ナレッジベース

[RasterImageViewer] 設定したリージョンを別のビューワコントロール上へコピー&ペーストすることは可能ですか?

設定したリージョン(選択領域)を別のRasterImageViewerコントロール上へコピー&ペーストを行うには、フロータ機能を使用し、以下の手順を実行します。

  1. RasterImage.AddRectangleToRegionメソッドなどで「リージョン」と呼ばれる選択領域を作成します。
  2. RasterImageViewer.RegionToFloaterメソッドで、リージョンをマウスでドラッグできる「フロータ」に変換します。
  3. RasterImageViewer.FloaterImageプロパティで、別のRasterImageViewerコントロール上へフロータを設定します。フロータの位置は、RasterImageViewer.FloaterPositionプロパティで設定します。
  4. フロータを移動後、RasterImageViewer.CombineFloaterメソッドを使用して表示している画像に合成します。

サンプルコード(VB.NET)

' 画像をビューワにロードします。
RasterImageViewer1.Image = codecs.Load("C:\Images\sample1.cmp")
RasterImageViewer2.Image = codecs.Load("C:\Images\sample2.cmp")

' 長方形のリージョンを作成します。
RasterImageViewer1.Image.AddRectangleToRegion(Nothing, New LeadRect(50, 50, 150, 150), Leadtools.RasterRegionCombineMode.Set)

' リージョンをフロータに変換します。
RasterImageViewer1.RegionToFloater()

' リージョン用に使用されているメモリを解放します。
RasterImageViewer1.Image.MakeRegionEmpty()

' ビューワ1のフロータを別のRasterImageViewerコントロール上へ設定します。
RasterImageViewer2.FloaterImage = RasterImageViewer1.FloaterImage

' フロータの座標を設定します。
RasterImageViewer2.FloaterPosition = RasterImageViewer1.FloaterPosition

' フロータの移動を開始します。
RasterImageViewer2.InteractiveMode = RasterViewerInteractiveMode.Floater

' フロータを合成します。
RasterImageViewer2.CombineFloater(True, CombineFastCommandFlags.SourceCopy)

' フロータは必要なくなったので、破棄します。
RasterImageViewer1.FloaterImage = Nothing
RasterImageViewer2.FloaterImage = Nothing

サンプルコード(C#)

// 画像をビューワにロードします。
rasterImageViewer1.Image = codecs.Load(@"C:\Images\sample1.cmp");
rasterImageViewer2.Image = codecs.Load(@"C:\Images\sample2.cmp");

// 長方形のリージョンを作成します。
rasterImageViewer1.Image.AddRectangleToRegion(null, new LeadRect(50, 50, 150, 150), Leadtools.RasterRegionCombineMode.Set);

// リージョンをフロータに変換します。
rasterImageViewer1.RegionToFloater();

// リージョン用に使用されているメモリを解放します。
rasterImageViewer1.Image.MakeRegionEmpty();

// ビューワ1のフロータを別のRasterImageViewerコントロール上へ設定します。
rasterImageViewer2.FloaterImage = rasterImageViewer1.FloaterImage;

// フロータの座標を設定します。
rasterImageViewer2.FloaterPosition = rasterImageViewer1.FloaterPosition;

// フロータの移動を開始します。
rasterImageViewer2.InteractiveMode = RasterViewerInteractiveMode.Floater;

// フロータを合成します。
rasterImageViewer2.CombineFloater(true, CombineFastCommandFlags.SourceCopy);

// フロータは必要なくなったので、破棄します。
rasterImageViewer1.FloaterImage = null;
rasterImageViewer2.FloaterImage = null;

 

関連情報

0 コメント

記事コメントは受け付けていません。