FrameQueueSink.FrameQueueSink Method
構文
public FrameQueueSink( IFrameQueueSinkListener listener );
public FrameQueueSink( IFrameQueueSinkListener listener, Guid mediaSubtype );
public FrameQueueSink( IFrameQueueSinkListener listener, FrameType frameType );
public FrameQueueSink( IFrameQueueSinkListener listener, FrameTypes frameTypeList );
public FrameQueueSink( Func<IFrameQueueBuffer, FrameQueueResult> frameQueueFunc, int initialBufferCount );
public FrameQueueSink( Func<IFrameQueueBuffer, FrameQueueResult> frameQueueFunc, Guid mediaSubType, int initialBufferCount );
public FrameQueueSink( Func<IFrameQueueBuffer, FrameQueueResult> frameQueueFunc, FrameType frameType, int initialBufferCount );
public FrameQueueSink( Func<IFrameQueueBuffer, FrameQueueResult> frameQueueFunc, FrameTypes frameTypeList, int initialBufferCount );
listener : Sinkイベントを受信するリスナー
frameQueuedFunc:
新しい画像が到着した際にコールされる関数オブジェクトで、IFrameQueueBufferクラスライブラリリファレンス>クラス>IFrameQueueBufferを受け取ります。健全なバッファカウントを保持するために、sinkに都度キューされる必要があります。
コールされるFrameQueueSinkクラスライブラリリファレンス>クラス>FrameQueueSinkの中で、IFrameQueueBufferクラスライブラリリファレンス>クラス>IFrameQueueBufferが自動的に再キューされるかどうかを示すために、FrameQueuedResult.SkipReQueueクラスライブラリリファレンス>エニュメレーション(列挙)>refenum.StandardContainerかFrameQueuedResult.ReQueueクラスライブラリリファレンス>エニュメレーション(列挙)>refenum.StandardContainerを返す必要があります。
FrameQueuedResult FuncName( IFrameQueueBuffer img )
initialBufferCount:
FrameQueueSinkクラスライブラリリファレンス>クラス>FrameQueueSinkがframeQueuedFuncパラメータで作成された場合、Sinkが接続されたあと、直接キューされなければいけないフレーム数を指定する必要があります。もし0が引き渡された場合バッファは自動的に作成されません。
mediaSubType: 便利に使用できるパラメータです。
[C#]new FrameQueueSink( ..., new FrameTypes( new FrameType( mediaSubType ) ) ... );
frameType : 便利に使用できるパラメータです。
[C#]new FrameQueueSink( ..., new FrameTypes( frametype ) ... );
frameTypeList:
このSinkが接続タイプとして受け入れるFrameTypes。これが空の場合、Sinkはすべての接続タイプを受け入れます。
情報
ICImagingControl3.5より実装
サンプル
以下は、入力されたフレームを取得する無名関数を使ったRGB32のみ受け入れるFrameQueueSinkクラスライブラリリファレンス>クラス>FrameQueueSinkの作り方です。
[C#]FrameQueueSink sink = new FrameQueueSink(( img ) => { /* img内のIFrameQueueBufferに対する実行 */ return
FrameQueuedResult.ReQueue; }, MediaSubTypes.RGB32, 5);
ICImagingControl1.Sink = sink;
ICImagingControl1.LiveStart();
関連項目
FrameQueueSinkクラスライブラリリファレンス>クラス>FrameQueueSink, IFrameQueueSinkListenerクラスライブラリリファレンス>クラス>IFrameQueueSinkListener, FrameQueueBufferクラスライブラリリファレンス>クラス>FrameQueueBuffer, FrameTypeクラスライブラリリファレンス>クラス>FrameType, FrameTypesクラスライブラリリファレンス>クラス>FrameTypes, FrameQueuedResultクラスライブラリリファレンス>エニュメレーション(列挙)>refenum.StandardContainer