zoukankan      html  css  js  c++  java
  • 为超图三维场景添加屏幕快照功能

     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 }
  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/jobgeo/p/5191966.html
Copyright © 2011-2022 走看看