私は自分の Web カメラをいじっていて、(Microsoft Expression Encoder SDK を使用して) 小さなアプリケーションの作成を開始しました。このアプリケーションでは、Web カメラの画像が winform の画像ボックスにストリーミングされます [1]。これまでのところ、すべてが非常にスムーズに進みました。しかし、今私の問題が始まります:
ビデオストリームの単一の画像をキャプチャして保存したい。ビデオファイルを作成できる「ScreenCaptureJob」クラスを見つけました。Microsoft の MSDN は、「ダイアログ ボックスの静止画像から何でもキャプチャする」ことが可能であると述べています [2]。MSDN のすべてのサンプルは、ビデオ キャプチャに関するものです。残念ながら、このクラスを使用して単一の画像をキャプチャする方法を見つけることができませんでした。
誰でも私を助けることができますか?
[1] ウェブカメラを画像ボックスにストリーミングするコード (出典: http://www.codeproject.com/Articles/202464/How-to-use-a-WebCam-in-C-with-the-NET-Framework-4 )
var lstVideoDevices = new Dictionary<string, EncoderDevice>();
var lstAudioDevices = new Dictionary<string, EncoderDevice>();
foreach (EncoderDevice edv in EncoderDevices.FindDevices(EncoderDeviceType.Video))
{
lstVideoDevices.Add(edv.Name, edv);
}
foreach (EncoderDevice eda in EncoderDevices.FindDevices(EncoderDeviceType.Audio))
{
lstAudioDevices.Add(eda.Name, eda);
}
_job = new
var _deviceSource = _job.AddDeviceSource(lstVideoDevices.Values.FirstOrDefault(x => x.Name.Contains("USB")), lstAudioDevices.Values.FirstOrDefault(x => x.Name.Contains("USB")));
_deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(this.pictureBox1, this.pictureBox1.Handle));
_job.ActivateSource(_deviceSource);`
[2] http://msdn.microsoft.com/en-us/library/gg602440%28v=expression.40%29.aspx