FrameNotificationSink

ビデオキャプチャデバイスから画像を取得する最も直接的な方法を提供したSinkです。ドライバメモリからアプリケーションメモリへのコピーを行いません。

このSinkは、アプリケーションが画像データをサードパーティ製の画像処理ライブラリなどのバッファにイメージのコピーが必要な場合に有効に使用できます。

以下、簡単なサンプルです。

class Listener : IFrameNotificationSinkListener
{
    public void SinkConnected(FrameType frameType) { }
    public void SinkDisconnected() { }
    public void FrameReceived(Iframe frame)
    {
        // フレームに対する処理
    }
}
var listener = new Listener();
var sink = new FrameNotificationSink(listener);
ICImagingControl1.Sink = sink;

FrameNotificationSinkには、IFrameNotificationSinkListenerクラスライブラリリファレンス>クラス>IFrameNotificationSinkListenerインターフェースが実装したクラスのインスタンスが引き渡されます。 デバイスから画像を取得すると、リスナーのFrameReceivedクラスライブラリリファレンス>クラス>IFrameNotificationSinkListener>IFrameNotificationSinkListener.FrameReceived Methodメソッドがコールされます。

このSink内にはバッファリングしないため、コールバック関数内の処理は素早く完了させる必要があります。システム負荷が高い場合やフレーム間隔に比べて関数内の処理が完了しない場合、フレーム毎にコールバックが呼び出される保障はありません。

インフォメーション

ネームスペース: TIS.Imaging
IC Imaging Control 3.5より実装