編集処理(アノテーション機能)に関連するプロパティやメソッドを格納しています。

このカスタム階層プロパティのメンバの一覧については、 Edit メンバを参照してください。

説明

ImageKit.NET3 コントロールにて、様々なアノテーション・編集機能を実現します。


実行可能なアノテーション・編集機能は、以下のとおりです。(ImageKit.NET3 では、描画・貼付されたものを「オブジェクト」と呼びます。)

■ 直線(矢印)・連続線(矢印)・多角形・矩形・角丸矩形・楕円・ペン・テキスト・スタンプの各オブジェクト描画、イメージの貼付(貼付イメージオブジェクト)
   (コントロール上のマウス操作、またはメソッドにより実行可能。)
■ 各オブジェクトの単独選択・複数(範囲)選択・全オブジェクト選択
   (コントロール上のマウス操作、またはメソッドにより実行可能。)
■ 各オブジェクトの移動・回転・拡大・縮小(単独選択、複数(範囲)・全体選択時)
   (コントロール上のマウス操作、またはプロパティ(単独選択時のみ)により実行可能。連続線・多角形・ペンの座標の追加・挿入・削除はメソッドでも実行可能。)
■ 各オブジェクトの削除・コピー・切り取り・貼付け(単独選択、複数(範囲)・全体選択時)、z オーダー変更・描画後のプロパティ変更(単独選択時のみ)
   (コントロール上の右クリックによるコンテキストメニュー、またはメソッドにより実行可能)
■ 編集・アノテーション作業を、元に戻す・やり直す
   (コントロール上の右クリックによるコンテキストメニュー、またはメソッドにより実行可能)
■ 描画・編集したオブジェクトをファイルに保存、保存したファイルをイメージ上にロード
   (メソッドにより実行可能)
■ 描画・編集したオブジェクトをラスタイメージに埋め込み(オブジェクトのラスタライズ)
   (メソッドにより実行可能)


マウス操作による描画・編集の方法(いずれも、予め ImageKit コントロールに基本イメージを読み込んである状態でのみ有効です。)
(メソッドによる方法は、各メソッドの説明ページをご覧ください。)
※各項目内の説明における諸プロパティの設定や編集操作は、 Newtone.ImageKit.Win.ToolBarStandardNewtone.ImageKit.Win.ToolBarSetUpLinesNewtone.ImageKit.Win.ToolBarSetUpObjectsNewtone.ImageKit.Win.ToolBarAnnotation の各 ToolBar によっても可能です。詳しくは、各 ToolBar のヘルプをご参照ください。

■ 直線(矢印直線)
(1) PenWidthForeColorForeColorOpacityDoubleLineStartLineCapEndLineCapDashStyleDashPatternStartArrowCapStartArrowCapFilledStartArrowCapSizeEndArrowCapEndArrowCapFilledEndArrowCapSize の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Line に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、直線が描画されます。
※ Shift キーを押しながら描画すると、2点目のマウスの位置によって 0度・±45度・±90度の直線を描画します。
■ 連続線(矢印連続線)
(1) PenWidthForeColorForeColorOpacityStartLineCapEndLineCapDashStyleDashPatternLineJoinStartArrowCapStartArrowCapFilledStartArrowCapSizeEndArrowCapEndArrowCapFilledEndArrowCapSize の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Polyline に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンをクリックし(ボタンは放します)、ボタンを放したままマウスを動かすと、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを再びクリックすると2点目が決定され、ひとつの直線が描画されます。引き続きマウスを動かすと、2点目とマウス位置を結ぶ直線が表示されますので、描画したい3点目の座標でボタンを再びクリックして座標を決定します。以降この作業を繰り返し、描画したい最後の座標でダブルクリックするとすべての座標が決定し連続線が描画されます。
ContextMenuEnabled プロパティを True に設定しておき、連続線の描画の途中(ダブルクリックですべての座標を決定する前)で、右クリックしてコンテキストメニューの「元に戻す」を選択すると、その段階での最新座標が取り消され、一つ前の座標と現在のマウス位置を結ぶ直線が表示されます。(すべての座標を取り消すと、描画前の状態に戻ります。)
■ 多角形
(1) PenWidthForeColorForeColorOpacityFillBackColorBackColorOpacityCustomBrushEnabledBrushKindHatchStyleCustomBrushColor1CustomBrushColor2LinearGradientModeCustomBrushImageFileNameDashStyleDashPatternLineJoin の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Polygon に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンをクリックし(ボタンは放します)、ボタンを放したままマウスを動かすと、1点目とマウス位置を結ぶ直線が表示されますので、描画したい2点目の座標でボタンを再びクリックすると2点目が決定され、ひとつの直線が描画されます。引き続きマウスを動かすと、2点目とマウス位置を結ぶ直線が表示されますので、描画したい3点目の座標でボタンを再びクリックして座標を決定します。以降この作業を繰り返し、描画したい最後の座標でダブルクリックすると、その座標と最初の座標が直線で接続され、すべての座標が決定し多角形が描画されます。
ContextMenuEnabled プロパティを True に設定しておき、多角形の描画の途中(ダブルクリックですべての座標を決定する前)で、右クリックしてコンテキストメニューの「元に戻す」を選択すると、その段階での最新座標が取り消され、一つ前の座標と現在のマウス位置を結ぶ直線が表示されます。(すべての座標を取り消すと、描画前の状態に戻ります。)
■ 矩形・角丸矩形・楕円
(1) PenWidthForeColorForeColorOpacityFillBackColorBackColorOpacityCustomBrushEnabledBrushKindHatchStyleCustomBrushColor1CustomBrushColor2LinearGradientModeCustomBrushImageFileNameRoundRectangleRadius (角丸矩形のみ)の各プロパティを設定しておきます。
(2) EditKind プロパティを、 矩形の場合は KindOfEdit.Rectangle に、 角丸矩形の場合は KindOfEdit.RoundRectangle に、 楕円の場合は KindOfEdit.Ellipse に設定します。
(3) 描画したいひとつの角の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を対角とする矩形(またはその矩形に内接する楕円)が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、矩形・角丸矩形・楕円が描画されます。
※ Shift キーを押しながら描画すると、正方形・円を描画します。
■ ペン
(1) PenWidthForeColor ForeColorOpacityStartLineCapEndLineCapDashStyleDashPatternLineJoinClosePenLineFillCustomBrushEnabledBrushKindHatchStyleCustomBrushColor1CustomBrushColor2LinearGradientModeCustomBrushImageFileName の各プロパティを設定しておきます。
(2) EditKind プロパティを KindOfEdit.Pen に設定します。
(3) 描画したい1点目の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、ドラッグした軌跡に合わせて連続線が描画され、ボタンを放した時点でひとつのオブジェクトとして決定されます。
■ 貼付イメージ
(1) EditKind プロパティを、 KindOfEdit.Image に設定します。
(2) 貼り付けたいひとつの角の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグすると、1点目とマウス位置を対角とする矩形が表示されますので、描画したい2点目の座標でボタンを放すと位置が決定され、ファイルオープンダイアログが開きます。
(3) 貼り付けたいイメージファイルを選択し、ダイアログボックスの「開く」ボタンをクリックすると、(2)で決定した位置、大きさで選択したイメージが貼り付けられます。
AspectRatio プロパティを True にして貼り付けると、(2)で決定した矩形の形状に関わらず、貼り付けるイメージの縦横比を保って貼り付けられます。貼り付けられるイメージの大きさは、貼り付けるイメージの形状と(2)で描画した矩形の形状により、(2)で決定した矩形の縦か横の大きさに合わせます。
※貼り付け可能なイメージの種類は、ImageKit コントロールでロードできるものと同様です。貼り付け時にファイルの内容を自動的に判断し、貼り付け可能なイメージファイルでない場合は、(2)で決定した矩形は削除され、矩形設定前の状態に戻ります。
※貼り付け可能な種類のイメージを選択した場合でも、貼り付け範囲が非常に大きくメモリ不足で貼り付けたイメージが描画できない場合などには、白地に赤いバツ印のイメージが表示されます。この場合には、貼り付けたオブジェクトを「削除」や「元に戻す」で一度削除し、貼り付け範囲をもっと小さくするなどして再度貼付を試みてください。
■ テキスト・スタンプ
(1) FontNameFontSizeFontBoldFontItalicFontStrikeoutFontUnderlineForeColorForeColorOpacityFillBackColorBackColorOpacityCustomBrushEnabledBrushKindHatchStyleCustomBrushColor1CustomBrushColor2LinearGradientModeCustomBrushImageFileNameWordWrapPenWidthBorderBorderColorBorderColorOpacityBorderShape(スタンプのみ)、 TextAlign(スタンプのみ)、 VerticalTextRightToLeft の各プロパティを設定しておきます。
(2) EditKind プロパティを テキストの場合は KindOfEdit.Text に、 スタンプの場合は KindOfEdit.Stamp に設定します。
(3) 描画したいテキストの左上隅の座標でマウスの左ボタンを押し、左ボタンを押したままマウスをドラッグしてボタンを放すと、テキスト入力用エリアの矩形が表示されます。テキスト入力中のテキストボックスの大きさはテキスト数、行数に合わせて自働的に調整されます。
TextBoxForeColor プロパティが Empty 以外の際には、入力中の文字色は TextBoxForeColor プロパティの値に、背景色は TextBoxBackColor プロパティの値になります。 TextBoxForeColor プロパティが Empty の際には、Fill プロパティが True の場合は BackColor プロパティの色で、False の場合は、 ForeColor プロパティの色を RGB 反転した色で塗りつぶされた矩形になり、文字色は ForeColor の値となります。)
テキストオブジェクトの最終的な描画範囲は、WordWrap プロパティが True の場合は描画時に指定したままの大きさで、False の場合はここで選択した左上の座標と、設定したフォントとテキストの内容によって自動的に決定されます。
(4) キーボードで描画したい文字列を入力します。(Enter キーの押下により、複数行の入力も可能です。)
(5) (3) で表示させた入力用のテキストボックス外のイメージ表示部分をクリックすると、入力したテキストが決定されイメージ上に描画されます。
SetTextOnRightClick プロパティを True に設定している場合はテキストボックスの右クリックによっても、 また、SetTextOnInvalidAreaClick プロパティを True に設定している場合は ImageKit コントロールのイメージ表示外部分(ハッチ部分)のクリックによってもテキストを確定できます。
(ここで決定された文字列は Text プロパティに設定されます。)
Fill プロパティが True の場合は、自動的に決定されたテキスト表示範囲が BackColor プロパティの色で塗りつぶされます。 (CustomBrushEnabled プロパティが True の場合は BrushKind プロパティの内容によります。)
Border プロパティが True の場合は、PenWidth プロパティの太さ、ForeColor プロパティの色の枠線が付加されます。
■ 単独選択
(1) EditKind プロパティを KindOfEdit.Select に設定します。
(2) 描画されているいずれかひとつのオブジェクトをクリック(*)すると、そのオブジェクトが被選択状態となり、そのオブジェクトの移動・変形(伸縮)・回転・削除・コピー・切り取り・貼付けが可能となります。
* 単独選択されるクリック位置は、各オブジェクトによって異なり、以下のとおりとなります。
  ・直線・連続線、多角形、ペン: オブジェクトを構成するすべての座標の、最左の x 座標、最上の y 座標、最右の x 座標、最下の y 座標で囲まれた矩形内
  ・矩形・楕円: オブジェクトが内接する矩形内(回転されている場合は、回転した状態のオブジェクトが内接する矩形となります。)
  ・テキスト: テキスト描画範囲の矩形内(回転されている場合は、回転した状態のテキスト描画範囲が内接する矩形となります。)
■ 複数(範囲)選択
(1) EditKind プロパティを KindOfEdit.MultiSelect に設定します。
(2) マウスをドラッグすると選択範囲の矩形が表示され、構成座標がすべてその矩形内に入っているオブジェクトが被選択状態となります。
Ctrl キーを押しながらオブジェクト上をクリックすると、任意のオブジェクトを複数選択可能です。 また、Ctrl キーを押しながら選択済みのオブジェクト上をクリックすると選択は解除されます。(選択範囲の矩形内でも非選択となります。)
(3) 選択したオブジェクトをまとめて移動・回転・拡大・縮小・削除・コピー・切り取り・貼付けが可能です。
■ すべて選択/すべて選択を解除
(1) EditKind プロパティを KindOfEdit.MultiSelect に設定します。
(2) ContextMenuEnabled プロパティを True に設定しておき、ImageKitコントロール上の任意の位置を右クリックし、コンテキストメニューから「すべて選択」(*)を選択すると、描画されているすべてのオブジェクトが被選択状態となり、それらのオブジェクトの移動・削除・コピー・切り取りが可能となります。
* 何も選択されていないか複数(範囲)選択状態で右クリックすると、コンテキストメニューに「すべて選択」メニューが表示され、すべて選択が可能となります。すべて選択されている状態で右クリックすると、コンテキストメニューに「すべて選択を解除」メニューが表示され、すべて選択が解除できます。
* CanDeselectAllSelect プロパティを True に設定した場合は、マウス操作で「すべて選択」状態は解除となり、通常の複数(範囲)選択動作となります。
■ オブジェクトの移動
(1) EditKind プロパティを KindOfEdit.Select または KindOfEdit.MultiSelect に設定し、オブジェクトを選択します。
(2) 被選択状態のオブジェクトの位置にマウスカーソルを移動すると、ポインタが  に変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、移動したい位置でボタンを放します。
■ オブジェクトの拡大・縮小(変形)
(1) 拡大・縮小(変形)は、単独選択時および複数(範囲)選択時に有効です。EditKind プロパティを KindOfEdit.Select または KindOfEdit.MultiSelect に設定し、オブジェクトを選択します。
(2) 被選択状態のオブジェクトの選択状態を表す矩形の境界上にマウスカーソルを移動すると、ポインタが  または  または  または  に変わる位置がありますので、その位置でマウスの左ボタンを押しボタンを押したままマウスをドラッグし、拡大・縮小・変形させたい位置でボタンを放します。
  ◆ 単独選択の場合
  ※連続線・多角形・ペンの場合、EditByPoint プロパティを True に設定しておくと、座標ごとの編集(移動)が可能です。
  また、EditByPoint プロパティと EditPolylinePointEnabled プロパティの両方を True に設定することにより座標の追加・挿入・削除が可能です。
    ・座標ごとの移動:選択状態のオブジェクトの ○ 印上にマウスカーソルを移動すると、ポインタが  に変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、変形させたい位置でボタンを放します。
    ・座標の追加:選択状態のオブジェクトの最後の構成座標の ○ 印上でポインタが  に変わった時に右クリックすることにより表示されるコンテキストメニューの「追加」をクリックすると、(マウスボタンは放した状態で)最後の座標とマウスカーソル位置を結ぶ直線が表示されますので、追加したい場所でダブルクリックするとその座標に1点追加されます。
    ・座標の挿入:選択状態のオブジェクトの最後の構成座標以外の ○ 印上でポインタが  に変わった時に右クリックすることにより表示されるコンテキストメニューの「挿入」をクリックすると、クリックした座標と次の座標の中間に1点追加されます。
    ・座標の削除:選択状態のオブジェクトの ○ 印上でポインタが  に変わった時に右クリックすることにより表示されるコンテキストメニューの「削除」をクリックすると。その座標が削除されます。
  ※ 矩形・楕円の場合、Shift キーを押しながら変形すると、 AspectRatio プロパティを True に設定している場合は変形前の縦横比を保ったまま、False の場合は変形前の形状に関わらず、正方形・円の状態で大きさが変更されます。
  ※ 貼付イメージの場合、AspectRatio プロパティを True にして変形すると、変形前の形状に関わらず、元イメージの縦横比を保ったままイメージの大きさが変更されます。
  ※ テキスト・スタンプの場合、ResizeTextOnCenter プロパティと、選択されたオブジェクトの WordWrap プロパティの値により変形時の挙動が変わります。 詳しくはResizeTextOnCenter プロパティのページをご参照ください。
  ◆ 複数(範囲)選択の場合
  ※ 選択されたオブジェクトの相対的な位置関係を保ったまま、選択されたオブジェクトを拡大・縮小します。(例外のケースは MultiResizeMinWidthEachObject プロパティの項をご参照ください。)
  ※ 縮小する場合の、全体の範囲の最小値は、 MultiResizeMinHeight, MultiResizeMinWidth プロパティ、各オブジェクトの最小サイズは、 MultiResizeMinHeightEachObject, MultiResizeMinWidthEachObject プロパティの値となります。
  ※ 選択されたオブジェクトに AspectRatio が True の貼付イメージや WordWrap が False のテキスト・スタンプが含まれる場合、以下の通りとなります。
  ・四隅を掴んでの拡大・縮小の場合:全体の選択範囲および選択されたすべてのオブジェクトの縦横比を保ったまま拡大・縮小されます。
  ・縦横方向の拡大・縮小の場合:縦横比を保つイメージ・テキスト・スタンプは縦横比を保ったまま、そのほかのオブジェクトはドラッグ方向に拡大・縮小されます。
  ※ 選択されたオブジェクトに AspectRatio が True の貼付イメージや WordWrap が False のテキスト・スタンプが含まれない場合で四隅を掴んでの拡大・縮小は、全体の選択範囲および選択されたすべてのオブジェクトはドラッグ方向に基づいて拡大・縮小されますが、 AspectRatio プロパティを True にしてドラッグした場合は、全体の選択範囲および選択されたすべてのオブジェクトの縦横比を保ったまま拡大・縮小されます。
■ オブジェクトの回転
(1) 回転は、単独選択時および複数(範囲)選択時に有効です。EditKind プロパティを KindOfEdit.Select または KindOfEdit.MultiSelect に設定し、オブジェクトを選択します。
(2) 被選択状態のオブジェクトの選択状態を表す矩形の四隅の外側にマウスカーソルを移動すると、ポインタが  または  または  または  に変わる位置がありますので、その位置でマウスの左ボタンを押し、ボタンを押したままマウスをドラッグし、回転させたい位置でボタンを放します。
※単独選択時は選択したオブジェクトの中心点を、複数(範囲)選択時は選択範囲全体の中心点を中心に回転します。
■ 任意の矩形の範囲の設定
(1) EditKind プロパティを KindOfEdit.None に設定し、 ImageKit.RectDraw プロパティを True に設定すると、マウスドラッグや ImageKit.Rect プロパティへの直接の値設定で、任意の矩形の範囲設定が可能です。 設定した矩形は ImageKit.Rect プロパティで取得できます。
EditEnabled プロパティが False の際の ImageKit.RectDraw プロパティを True に設定した場合と同様です。)
範囲を指定しておいて、その範囲にコードでイメージやテキストオブジェクトなどを配置する、といった場合に使用できます。

※編集・アノテーション作業の途中で EditEnabled プロパティを False にした場合は、作業中の内容はすべて破棄されますのでご注意ください。
編集・アノテーション作業を実行した結果を保存したい場合は SaveAnnotationFile メソッドでアノテーション情報を保存するか、 DrawEditedObjectsToImage メソッドでオブジェクトをラスタライズしてラスタイメージとして保存してください。
※イメージの表示サイズがコントロールより大きい場合に、直線・矩形・楕円・ペン・テキスト入力用矩形 の各描画と、移動、変形、範囲選択のマウスドラッグ中にコントロール外にマウスを移動すると、イメージはマウスの動きに合わせてオートスクロールします。
※コンテキストメニューの詳しい内容については、 ContextMenuEnabled プロパティのページをご覧ください。


これらの編集・アノテーション機能の実際の使い方については、付属の「EditByMethod」、「EditToolBar」、「EditToolBarInMDIForm」「CustomizeAnnotationFunction」サンプルもご参照ください。

参照

Edit メンバ