1

나는 사용자 정의 웹캠 사용자 정의 컨트롤을 만들고있어.웹캠 미리보기에서 이미지가 일반 GDI + 예외를 던졌습니다

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);   
+0

c : \ 드라이브에 충분한 공간이 있는지 확인하거나 c : \ 드라이브에 쓰기가 가능합니다 (폴더 외부). 해당 시나리오에서 유사한 예외가 발생했습니다. – techno

+0

@techno 문제가 권한에. 내 App 데이터 폴더에 쓸 수 있습니다. Windows에서 사용 권한을 설정하지 않고 사용자 지정 폴더 (C :가 아니라 응용 프로그램 실행 폴더 내)에 쓸 수있는 방법이 있습니까? – Cranio

+0

c : \ Program Files \ – techno

답변

1

문제는 파일을 쓰는 중입니다. c : \ 드라이브에 공간이 부족하거나 c : \ drive (폴더 외부)에 쓸 수있는 권한이 없습니다. AppData에 쓰기를 시도하십시오. c : \ 드라이브에 쓰려면 사용자 지정 매니페스트를 사용하여 관리자 권한을 얻어야합니다.

+0

위의 주석 참조 :) – Cranio

관련 문제