1

私は非常に基本的な問題を抱えています。タイプの変数があります:ビットマップ。この変数は、Web カメラからフレームを受信するたびに更新されます。この変数は次のように宣言されます。

Bitmap img=eventArgs.Frame;

上記の行が正しく機能することを確認しました。ここで知っておく必要があるのは、フォームの PictureBox をこのビットマップ イメージに設定する方法だけです。私は次のことを試しました:

pbImg.Image=img;

これはうまくいきません。どんな助けでも大歓迎です。

4

1 に答える 1

3

Bitmaps generated by a camera normally only have a very short life-time. They are only valid while the event handler runs, the camera capture driver replaces the bitmap with a new frame. Pretty essential to avoid excessive memory usage.

You must therefore make a deep copy of the image so that it can survive in the PictureBox and still get painted after the event call completed. Like this:

  Bitmap img = new Bitmap(eventArgs.Frame);
  if (pbImg.Image != null) pbImg.Image.Dispose();
  pbImg.Image = img;
于 2013-10-24T14:12:56.277 に答える