1

カスタム Web カメラ ユーザー コントロールを作成しています。

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 に答える