直線の描画

Namespace: FVIL.Paint
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public static void DrawLine(
	CFviImage image,
	CFviLine line,
	IEnumerable<double> densities
)
Visual Basic
Public Shared Sub DrawLine ( 
	image As CFviImage,
	line As CFviLine,
	densities As IEnumerable(Of Double)
)

Parameters

image
Type: FVIL.Data..::..CFviImage
描画先の画像オブジェクト
line
Type: FVIL.Data..::..CFviLine
直線
densities
Type: System.Collections.Generic..::..IEnumerable<(Of <(<'Double>)>)>
濃度値

Remarks

指定された直線を画像上に描画します。

与えられた直線の方程式から、描画の為の始点と終点が求められます。 但し、直線の方程式 ax + by + c = 0 における、a と b が閾値(1e-9)未満の場合、直線は描画されません。 傾きが同じ線分の場合でも、始点と終点が異なった場合、描画される線分が一致しない場合があります。
引数 densities の要素数は、 image のチャネル数分必要です。 但し、画像種別が FVIL.ImageType.RGB32 の時は、チャネル数に関係なく 3 個(RGBプレーンの数)分必要です。

処理可能な画像種別とチャネル及び濃度値の扱い:
画像種別チャネル数濃度値の扱い
BIN1~16 各要素の濃度値を 0/1 に正規化して、各チャネルに適用します。
UC81~16 各要素の濃度値を 0~255 に正規化して、各チャネルに適用します。
S161~16 各要素の濃度値を -32768~32767 に正規化して、各チャネルに適用します。
US161~16 各要素の濃度値を 0~65535 に正規化して、各チャネルに適用します。
D641~16 各要素の濃度値を、各チャネルに適用します。
RGB321 各要素(0,1,2)の濃度値を 0~255 に正規化して、それぞれ 各プレーン(R,G,B)に適用します。 尚、ビット深度は 8bit にのみ対応しています。それ以外のビット深度の時はエラーは返さず無視されます。

実行に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。
12FVIL.ErrorCode.INVALID_OBJECT画像オブジェクトが不正です。
16FVIL.ErrorCode.INVALID_IMAGETYPE画像種別が不正です。
18FVIL.ErrorCode.INVALID_CHANNEL画像チャネル数が不正です。
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリの確保に失敗しました。

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also