2009-12-02 2 views
5

나는이 페인트 어플리케이션을하고 있습니다. 그것은 간단합니다. 그것은 내가 그리기 패널과 JPG 또는 BMP 또는 PNG 파일로 저장됩니다 마침내 구성되어 있습니다.패널을 이미지로 저장

내 응용 프로그램이 완벽하게 작동하지만 직면 한 문제는 출력물을 저장할 때 패널에 그려지는 것이 아니라 검은 색 이미지뿐입니다.

내 모든 작품은 내가

snapshot = (Bitmap)tempDraw.Clone(); 

이 (일이 위, 아래)

Thepic = new Bitmap(panel1.ClientRectangle.Width, this.ClientRectangle.Height); 

으로 마우스에 저장하고 정상적으로 작업을 저장하지만 다시 rsult 검은 색 이미지입니다되고있다 패널에 포함 된 것이 아닙니다.

+0

필터에 "png"대신 "pgn"이 있습니다. –

+0

... 나는 직접 게시물을 고칠 수 있지만 실제 소스에서 붙여 넣은 것이 있다면 그것에 대해 알고 싶을 수도 있습니다 ... –

+0

그래도 여전히 그렇습니다. 그래서 혼란 스러워요. 나가는 것은 stil black입니다. Image – Tony

답변

9

"복제"방법을 사용하는 것이 문제 일 수 있다고 생각합니다.

"DrawToBitmap"을 시도해보세요. 과거에는 저에게 효과적이었습니다. 여기

는 "plotPrinter"라는 컨트롤에서 비트 맵을 저장하는 예제입니다 :

 int width = plotPrinter.Size.Width; 
     int height = plotPrinter.Size.Height; 

     Bitmap bm = new Bitmap(width, height); 
     plotPrinter.DrawToBitmap(bm, new Rectangle(0, 0, width, height)); 

     bm.Save(@"D:\TestDrawToBitmap.bmp", ImageFormat.Bmp); 
 Be aware of saving directly to the C directly as this is not 
     permitted with newer versions of window, try using SaveFileDialog. 
SaveFileDialog sf = new SaveFileDialog(); 
    sf.Filter = "Bitmap Image (.bmp)|*.bmp|Gif Image (.gif)|*.gif|JPEG Image (.jpeg)|*.jpeg|Png Image (.png)|*.png|Tiff Image (.tiff)|*.tiff|Wmf Image (.wmf)|*.wmf"; 
    sf.ShowDialog(); 
    var path = sf.FileName; 
+4

이 작품은 위대한 작품입니다. 자식 컨트롤이없는 컨트롤의 경우, 컨트롤에 자식 컨트롤이있는 경우,'DrawToBitmap'은 자식을 'z'순서의 반대 방향으로 그립니다 (컨트롤 뒤에있는 것은 실제 프런트 컨트롤 앞에 그려집니다). –

+0

Thanx 많이 솔루션 작업 .... – Tony

+0

캔트 찾기 drawtobitmap 방법 –

0

당신은이를 시도 할 수 나를 위해 일을 대신 내가 MemoryStream을을 나오지 .

MemoryStream ms = new MemoryStream(); 
Bitmap bmp = new Bitmap(panel1.Width, panel1.Height); 
panel1.DrawToBitmap(bmp, new System.Drawing.Rectangle(0, 0, panel1.Width, panel1.Height)); 
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); //you could ave in BPM, PNG etc format. 
byte[] Pic_arr = new byte[ms.Length]; 
ms.Position = 0; 
ms.Read(Pic_arr, 0, Pic_arr.Length); 
ms.Close(); 
관련 문제