1

我正在制作自定义网络摄像头用户控件。

我使用 Microsoft Expression Encoder,并在控件内的面板上设置 PreviewWindow。

一切都很好,除了当我尝试抓取图像时,我得到一个异常:

通用 GDI+ 异常

我的第一次尝试是:

using (var bmp = new Bitmap(p.Width, p.Width))
            {
                panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
                bmp.Save(@"c:\test.png");
            }

另一个是:

using (Bitmap bitmap = new Bitmap(panelVideoPreview.Width, panelVideoPreview.Height))
          { 
              using (Graphics g = Graphics.FromImage(bitmap))
              {
                  Rectangle rectanglePanelVideoPreview = panelVideoPreview.Bounds;

             Point sourcePoints = panelVideoPreview.PointToScreen(new Point(panelVideoPreview.ClientRectangle.X, panelVideoPreview.ClientRectangle.Y));
             g.CopyFromScreen(sourcePoints, Point.Empty, rectanglePanelVideoPreview.Size); 
              }

              string strGrabFileName = String.Format("C:\\Snapshot.jpg", DateTime.Now);
              bitmap.Save(strGrabFileName, ImageFormat.Jpeg);        
4

1 回答 1

1

问题在于写入文件。c:\ 驱动器中可能没有足够的空间,或者您没有写入 c:\ 驱动器(文件夹外)的权限。尝试写入AppData,如果要写入 c:\ 驱动器,则需要使用自定义清单获取管理权限。

于 2012-06-23T09:24:32.270 回答