ビデオやイメージング用にAForgeを試してみることにしたので、この簡単なデモを実装しようとしました。
private void Main_Load(object sender, EventArgs e)
{
// enumerate video devices
FilterInfoCollection videoDevices = new FilterInfoCollection(
FilterCategory.VideoInputDevice);
// create video source
VideoCaptureDevice videoSource = new VideoCaptureDevice(
videoDevices[0].MonikerString);
// set NewFrame event handler
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
// start the video source
videoSource.Start();
}
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
this.pictureBox1.Image = eventArgs.Frame;
}
問題は、私が常にを取得することArgumentException
ですが、常にすぐに発生するとは限りません。にポップアップ表示されApplication.Run(new Main());
ますが、スタックトレースの上部は次のようになります。
at System.Drawing.Image.get_Width() at System.Drawing.Image.get_Size()
at System.Windows.Forms.PictureBox.ImageRectangleFromSizeMode(PictureBoxSizeMode mode)
at System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
これが適切かどうかはわかりませんがParamName
、例外の属性はnullです。画像の割り当てをtry...catchブロックでラップしようとしましたが、これは役に立ちませんでした。また、割り当て前に画像がnullでないことを確認しました。null以外の、ただし0x0サイズの画像もチェックしました。
私は何を間違えましたか?誰かが回避策を提案できますか?