過去2日間、C#を使用してWebカメラから画像をキャプチャする方法を探していました。私はc#の初心者で、外部のサードパーティライブラリを使用したくないので、2つの優れた方法を見つけましたが、どちらもほぼ同じエラーを返すようです。どれも動作させることができなかったので、そのうちの1つを実行するのを手伝ってくれるか、別の方法を見つけるのを手伝っていただければ幸いです。
したがって、私が最初に見つけた方法は、WindowsWIAを使用することです。私は次のコードを見つけました:
CommonDialogClass dialog = new CommonDialogClass();
Device camera = dialog.ShowSelectDevice(WiaDeviceType.CameraDeviceType, true, false);
// take the photo
Item item = camera.ExecuteCommand(CommandID.wiaCommandTakePicture);
ImageFile image = (ImageFile)item.Transfer(FormatID.wiaFormatJPEG);
// filename and saving
image.SaveFile("Test.jpg");
このコードは私が探しているものとまったく同じように見えますが、2行目に次のエラーが発生しているため、実行できません。
Exception from HRESULT: 0x80210015
私が見つけた2番目の方法は、次のサンプルでAvicap32.dllを使用することです。
http://www.timvw.be/wp-content/code/csharp/testavicap32.zip
しかし、私はこのコードに乗っています:
Image image = ((CaptureDevice)cboDevices.SelectedItem).Capture();
image.Save(@"c:\capture.png", ImageFormat.Png);
次の例外:NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
どちらの解決策も私のカメラが見つからないために問題を引き起こしていると思いますが、Skypeで問題なくカメラを使用できます。