0
C#의 AForge.Net에서 웹캠 프레임을 캡처하려고합니다. 불행히도 _CurrentFrame.LockBits에서 ArgumentException이 발생합니다. 잠긴 비트 맵에 내 이벤트를 쓰는 데 문제가 있다고 가정합니다. 때로는 UnlockBits에서 "GDI +에서 일반 오류가 발생했습니다"라는 메시지가 표시됩니다.잠긴 동안 비트 맵에 액세스하는 이벤트
public bool GetFrame(ref Draw.STexture Frame)
{
BitmapData bd = _CurrentFrame.LockBits(new Rectangle(0, 0, _CurrentFrame.Width, _CurrentFrame.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
byte[] data = new byte[4 * _CurrentFrame.Width * _CurrentFrame.Height];
Marshal.Copy(bd.Scan0, data, 0, data.Length);
//Do something with data here
_CurrentFrame.UnlockBits(bd);
_CurrentFrame.Dispose();
}
private void OnFrame(object sender, NewFrameEventArgs e)
{
if (_CurrentFrame != null)
_CurrentFrame.Dispose();
_CurrentFrame = (Bitmap)e.Frame.Clone();
}