1 public static void saveSceneScreenShot(Control control) 2 { 3 Image objImage = getSceneScreenShot(control); 4 if (objImage != null) 5 { 6 SaveFileDialog saveImageDialog = new SaveFileDialog(); 7 saveImageDialog.Title = "场景快照"; 8 saveImageDialog.Filter = @"png|*.png|jpeg|*.jpg|bmp|*.bmp"; 9 if (saveImageDialog.ShowDialog() == DialogResult.OK) 10 { 11 string fileName = saveImageDialog.FileName.ToString(); 12 if (fileName != "" && fileName != null) 13 { 14 string fileExtName = fileName.Substring(fileName.LastIndexOf(".") + 1).ToString(); 15 System.Drawing.Imaging.ImageFormat imgformat = System.Drawing.Imaging.ImageFormat.Png; 16 if (fileExtName != "") 17 { 18 switch (fileExtName) 19 { 20 case "jpg": 21 imgformat = System.Drawing.Imaging.ImageFormat.Jpeg; 22 break; 23 case "bmp": 24 imgformat = System.Drawing.Imaging.ImageFormat.Bmp; 25 break; 26 case "png": 27 imgformat = System.Drawing.Imaging.ImageFormat.Png; 28 break; 29 default: 30 break; 31 } 32 33 objImage.Save(fileName, imgformat); 34 } 35 } 36 } 37 } 38 } 39 40 public static Image getSceneScreenShot(Control control) 41 { 42 Image objImage = null; 43 44 try 45 { 46 int width = control.Width; 47 int height = control.Height; 48 Point pt = control.PointToScreen(new Point(0, 0)); // 客户区坐标转换为屏幕坐标 49 50 objImage = new Bitmap(width, height); 51 52 Graphics g = Graphics.FromImage(objImage); 53 54 g.CopyFromScreen(pt, new Point(0, 0), new Size(width, height)); 55 56 IntPtr dc1 = g.GetHdc(); 57 58 g.ReleaseHdc(dc1); 59 } 60 catch(Exception ex) 61 { 62 MessageBox.Show(ex.Message); 63 } 64 65 return objImage; 66 }
时间: 2024-08-07 16:25:11