ICImagingControl.LivePrepare Method

画像ストリームを構築する準備のためのメソッドです。デバイスをディスプレイ、シンクと接続し、フレームフィルタ、オーバーレイの挿入を行います。

構文

[VB.NET]
Public Sub LivePrepare() 
[C#]
public void LivePrepare();

戻り値

画像ストリームの準備が完了できなかった場合、例外を投げます。

備考

LivePrepareは画像ストリームの準備を行いますがライブ表示を開始したり使用するバス(FireWire or USB)に帯域を割り当てることはしません。よって複数の画像取り込みデバイスを使用する環境においてこのメソッドは適していると言えます。事前にLivePrepareを呼び出してからLiveStartクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStart Methodをコールしライブ表示を始めると、それを行わなかった場合よりも格段に早くスタートすることが可能です。
準備が完了し、開始したライブ画像ストリームはLiveSuspendクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveSuspend Methodをコールすることによって再び待機状態に戻すことができます。
ICImagingControl.LiveStopクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStop Methodをコールした場合、準備したライブ画像ストリームはクリアされます。
LivePrepareを呼び出した後は、画像ストリームのレイアウトを変える可能性のある動作はできなくなります。
以下の動作がそれらにあたります。

インフォメーション

IC Imaging Control 3.1より導入

構文

この例はどのようにしてIC Imaging Controlsを配列の中で使用し、複数の画像取り込みデバイスを有効な状態にするかを紹介しています。デバイスが有効になれば即座に画像ストリームの準備が整います。
この処理ループ中でMemorySnapImageクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.MemorySnapImage Methodは各IC Imaging Controlにおいて連続して実行されています。このループは比較的早く動作していますが、これは取り込む画像ストリームの準備がすでに整っている為です。

[VB.NET]
' 各画像取り込みデバイス用にICImagingControlインスタンスを作成する。
Dim CameraCount As Integer = 2 Dim IC(CameraCount) As TIS.Imaging.ICImagingControl

For Camera As Integer = 0 To CameraCount - 1
     IC(Camera) = New ICImagingControl()
     IC(Camera).ShowDeviceSettingsDialog()
     Try
         '画像ストリームの準備を行う。
         IC(Camera).LivePrepare()
     Catch Ex As ICException
         MessageBox.Show(Ex.Message)
     End Try
  Next
  ' 何かの処理を行います。e.g. 画像を取得する
  ' このループは各カメラで画像処理を10回ずつ、順次行っていきます。
For i As Integer = 0 To 10
    For Camera As Integer = 0 To CameraCount - 1
         If IC(Camera).IsLivePrepared = True Then
             Try
                 ' タイムアウトを1000ミリ秒に設定。
                 IC(Camera).MemorySnapImage(1000)
          ' PictureBox内に取得した画像を表示させる。
                 PictureBox1.Image = IC(Camera).ImageActiveBuffer.Bitmap
                 PictureBox1.Update()
             Catch Ex As ICException
                 MessageBox.Show(Ex.Message)
             End Try
         End If
     Next
Next

' アプリケーション終了後は準備したライブ画像ストリームが停止するようにする。
For Camera As Integer = 0 To CameraCount - 1
     IC(Camera).LiveStop()
Next
[C#]
// 各画像取り込みデバイス用にICImagingControlインスタンスを作成する。
int CameraCount = 2;
TIS.Imaging.ICImagingControl[] IC = new ICImagingControl[CameraCount];

// 画像取り込みデバイスをオープンにして、ライブ画像ストリームの準備を整えます。 
for (int Camera = 0; Camera < CameraCount; Camera++)
{
     IC[Camera] = new ICImagingControl();
     IC[Camera].ShowDeviceSettingsDialog();
     try
     {
         // 画像ストリームの準備を行う。
         IC[Camera].LivePrepare();
     }
     catch (ICException Ex)
     {
         MessageBox.Show(Ex.Message, "LivePrepare Error");
     }
}
  // 何かの処理を行います。e.g. 画像を取得する
  // このループは各カメラで画像処理を10回ずつ、順次行っていきます。
for (int i = 0; i < 10; i++)
{
     for (int Camera = 0; Camera < CameraCount; Camera++)
     {
         if (IC[Camera].IsLivePrepared)
         {
             try
             {
                 IC[Camera].MemorySnapImage(1000);
                 // PictureBox内に取得した画像を表示させる。
                 pictureBox1.Image = IC[Camera].ImageActiveBuffer.Bitmap;
                 pictureBox1.Update();
             }
             catch (ICException Ex)
             {
                 MessageBox.Show(Ex.Message, "MemorySnapImage Error");
             }
         }
     }
}

// アプリケーション終了後は準備したライブ画像ストリームが停止するようにする。 
for (int Camera = 0; Camera < CameraCount; Camera++)
{
     IC[Camera].LiveStop();
}