画像濃度波形描画クラス
Namespace: FVIL.GDIAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public sealed class CFviDrawAscope : CFviOverlay |
Visual Basic |
---|
<SerializableAttribute> Public NotInheritable Class CFviDrawAscope Inherits CFviOverlay |
Remarks
画像の濃度を波形にして描画するクラスです。
初期値と範囲:
プロパティ | 初期値 | 範囲 | 備考 |
---|---|---|---|
Active | false | false/true | マウス操作活性化属性です。 マウスに自動追従する場合は true です。 追従しない場合 false です。 |
Enable | false | false/true | 可視属性です。 濃度波形の表示を行う際に、上位側のアプリケーションで true に設定してください。 |
Scaling | false | false のみ | 伸縮属性です。 マウスポインタでの操作がある為、クライアント座標で描画しています。 true にする事は想定していません。 |
ScalingMode | FVIL.GDI.ScalingMode.Center | Center/TopLeft | マウスポインタ位置のサブピクセル計算に使用します。 Center は画素の中央を 0,0 とします。 画像計測が返す座標値はこの値です。 TopLeft は画素の左上を 0,0 とします。 この設定値を使用すると、画像計測が返す座標値と一致しませんのでご注意ください。 |
EffectiveCursorPosition | 0,0 | ※インスタンスの差し替えは想定していません。 | 有効範囲内で正規化されたマウスカーソル位置です。 |
AbsoluteCursorPosition | 0,0 | 0,0 ~ (Width,Height) |
画像座標で示すマウスカーソル位置です。 UseAbsoluteCursor が true の場合は、このプロパティが示す位置の濃度波形を表示します。 Active が true の場合は、描画の際に EffectiveCursorPosition で更新されます。 |
UseAbsoluteCursor | false | true/false |
マウスカーソル位置をクライアント座標で表すか画像座標で表すかを示します。 false の場合は、マウスカーソル位置をクライアント座標で示し、濃度波形は可視範囲のみを表示します。 true の場合は、マスクカーソル位置を画像座標で表し、濃度波形は画像全体を表示します。 |
DefaultParam | CFviDrawAscopeParam の初期値 | CFviDrawAscopeParam | このオーバレイで描画される図形の描画属性(色や形状)を示します。 この設定値はアプリケーション内で共有しており、当クラスのインスタンス毎に変更することはできません。 |
このオーバレイで描画される図形は、 下記のように Figures 配列に格納されていますが、 将来的に配列の内容は変更される可能性があります。 この初期化内容に依存したプログラムを作らないようにしてください。 また、この配列をクリアされることを想定していません。
配列の初期化内容:プロパティ | 初期値 | 範囲 | 備考 |
---|---|---|---|
Figures[0] | CFviGdiLineSegment | ※インスタンスの差し替えは想定していません。 | 十字カーソルの線分です。 |
Figures[1] | CFviGdiLineSegment | ※インスタンスの差し替えは想定していません。 | 十字カーソルの線分です。 |
Figures[2~4] | CFviGdiLineSegment | ※インスタンスの差し替えは想定していません。 | 濃度のルーラ(0,50,100%)の線分です。 |
Figures[5~7] | CFviGdiLineSegment | ※インスタンスの差し替えは想定していません。 | 濃度のルーラ(0,50,100%)の線分です。 |
Figures[8~14] | CFviGdiPolyline | ※インスタンスの差し替えは想定していません。 | 7 チャネル分の濃度波形の点列です。 線の色は、0 チャネル目から順に Red, Green, Blue, Cyan, Magenta, Yellow, Gray に初期化されています。 2値やグレイでは [9] の点列(Green)のみ表示します。 |
Figures[15~21] | CFviGdiPolyline | ※インスタンスの差し替えは想定していません。 | 7 チャネル分の濃度波形の点列です。 線の色は、0 チャネル目から順に Red, Green, Blue, Cyan, Magenta, Yellow, Gray に初期化されています。 2値やグレイでは [16] の点列(Green)のみ表示します。 |
Figures[22] | CFviGdiString | ※インスタンスの差し替えは想定していません。 | カーソル位置を表示する文字列です。 |
Figures[23] | CFviGdiString | ※インスタンスの差し替えは想定していません。 | 濃度を表示する文字列です。 |
Examples
スクリーンショット:
ソースコード (1):
黄色い十字のカーソルをマウスに追従させる場合は Active プロパティを true に設定します。 下記のコードは、現在の属性を反転させて true/false を切り替える例です。
ソースコード (2):
黄色い十字のカーソルをマウスに追従させない場合は Active プロパティを false に設定し、 Enable プロパティを true に設定します。 下記のコードは、現在の属性を反転させて true/false を切り替える例です。
この場合、黄色い十字のカーソル位置の変更は上位側から行う必要がありますので、 下記のように画像ビューの MouseDown イベント等を監視して 現在のカーソル位置(CursorPosition)を変更してください。
ソースコード (1):
黄色い十字のカーソルをマウスに追従させる場合は Active プロパティを true に設定します。 下記のコードは、現在の属性を反転させて true/false を切り替える例です。
C# | Copy |
---|---|
private void OnCursorAscope(object sender, EventArgs e) { ImageView.Display.OverlayAscope.Active = !ImageView.Display.OverlayAscope.Active; ImageView.Refresh(); } |
ソースコード (2):
黄色い十字のカーソルをマウスに追従させない場合は Active プロパティを false に設定し、 Enable プロパティを true に設定します。 下記のコードは、現在の属性を反転させて true/false を切り替える例です。
C# | Copy |
---|---|
private void OnOverlayAscope(object sender, EventArgs e) { ImageView.Display.OverlayAscope.Enable = !ImageView.Display.OverlayAscope.Enable; if (ImageView.Display.OverlayAscope.Enable == true) ImageView.Display.OverlayAscope.Active = false; ImageView.Refresh(); } |
この場合、黄色い十字のカーソル位置の変更は上位側から行う必要がありますので、 下記のように画像ビューの MouseDown イベント等を監視して 現在のカーソル位置(CursorPosition)を変更してください。
C# | Copy |
---|---|
private void OnMouseDown(object sender, MouseEventArgs e) { if (ImageView.Display.OverlayAscope.Enable) { ImageView.Display.OverlayAscope.CursorPosition = e.Location; ImageView.Refresh(); } } |