ICImagingControl.MemorySnapImage Method

このメソッドはライブ画像ストリームより静止画をキャプチャします。

構文

[VB.NET]
Public Sub MemorySaveImage
Public Sub MemorySaveImage( timeoutInMs As Integer ) 
[C#]
public void MemorySaveImage();
public void MemorySaveImage( int timeoutInMs ); 
パラメータ 説明
timeoutInMs キャプチャのタイムアウト値をミリ秒単位で指定します。

備考

このメソッドはライブ画像ストリームより静止画をキャプチャしリングバッファに保存します。そのバッファはICImagingControl.MemorySaveImageクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.MemorySaveImage Methodメソッドを使ってファイルに保存することが可能です。
もしすでにライブ表示中であれば、MemorySnapImageにおける最長キャプチャ時間はフレームレートの時間間隔の2倍となります。 MemorySnapImageは次に新しく送られて来る画像をキャプチャします。
ライブ表示を開始していない状態でMemorySnapImageを呼び出した場合、MemorySnapImageによって自動的に開始されるようになっています。そして1枚の画像が取り込まれた後に停止します。アプリケーション内でMemorySnapImageを頻繁に呼び出し、開始-取り込み-停止の作業を繰り返すと、非常に処理に時間がかかってしまします。よって一度アプリケーションでLiveStartクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStart Methodを呼び出し、終了とともにライブ画像ストリームを停止させることが推奨されます。
LiveCaptureContinuousクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveCaptureContinuous Propertyがtrueである時、MemorySnapImageはエラーコード ICException.ErrorCodes.NotAvailableOutsideSnapModeと共にICExceptionクラスライブラリリファレンス>クラス>ICExceptionを投げます。
タイムアウト時間内に一枚もデバイスから画像が送られてこない場合、例外が投げられます。
外部トリガーカメラが使用されている場合、MemorySnapImageの使用は避けてください。戻り値を返すまでアプリケーションを停止させてしまいます。トリガー付きカメラを使用する際はImageAvailableクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.ImageAvailable Eventイベントを使用することが推奨されます。

構文

以下のコードはタイムアウト値を1000ミリ秒に設定して、画像をキャプチャするようにしています。キャプチャされた画像はPictureBox内で表示されます。

[VB.NET]
IcImagingControl1.LiveStart()
Try
     ' タイムアウト値を1000ミリ秒に設定
     IcImagingControl1.MemorySnapImage(1000)
     ' キャプチャした画像を PictureBoxで表示
     PictureBox1.Image = IcImagingControl1.ImageActiveBuffer.Bitmap
Catch Ex As ICException
     MessageBox.Show(Ex.Message)
End Try
IcImagingControl1.LiveStop()
[C#]
ICImagingControl1.LiveStart();
try
{
     // タイムアウト値を 1000ミリ秒に設定
     ICImagingControl1.MemorySnapImage(1000);
     // キャプチャした画像 をPictureBoxで表示
     pictureBox1.Image = ICImagingControl1.ImageActiveBuffer.Bitmap; }
catch (ICException Ex)
{
     MessageBox.Show(Ex.Message, "MemorySnapImage Error");
}
ICImagingControl1.LiveStop();