为超图三维场景添加屏幕快照功能

 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

为超图三维场景添加屏幕快照功能的相关文章

app store上传图片显示错误:未能创建 屏幕快照

在iTunes Connect中添加一个app后,添加屏幕快照时,按照要求的尺寸上传照片成功,但是在保存的时候提示"未能创建Screenshots for 4-inch iPhone5 and iPod touch(5th generation)Retina display的屏幕快照".] (图片来自网络) 其实就是保存失败, 图片不适合格式. 但排除1.尺寸大小 2.图片格式jpeg/png 我上传的格式是jpeg, 像素72dpi. 解决方案: 1. 网上搜索到解决方案是虽然尺寸大

Atitit.aticmd v4  新特性q39 添加定时器释放功能

Atitit.aticmd v4  新特性q39 添加定时器释放功能 V1  实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3  stdout stderr统一重新定向 V4  添加定时器释放功能 V5   兼容性的.net java php V6   bigfile output的solu  ,arg sh all total ret... 作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:

LVM的创建、扩展、收缩及快照功能的介绍

LVM技术说明: LVM是logical Volume Manager(逻辑卷管理)的简称. LVM机制使得我们安装系统时候不用太担心分区大小对后期扩展带来的不便. LVM是在物理卷(Physical Volume)上再建立了一层逻辑层.可以将多块磁盘组成卷组,再划分为多个逻辑卷. 首先,说下几个名词: PV     # 物理卷Physical Volume VG     # 卷组Volume Group LV     # 逻辑卷Logical Volume PE     # 物理块Physic

linux下LVM相关知识(动态增减LVM,快照功能)的总结

一,什么是LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM是磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统.物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质

SuperMap for JavaScript 中的最佳路径分析功能转换为三维中的最佳路径分析功能

1.注意,要处理有交通网络分析服务 2.代码 var nodeArray = [],pathListIndex = 0,routeCompsIndex = 0,pathTime,style = { strokeColor: "#304DBE", strokeWidth: 3, pointerEvents: "visiblePainted", fill: false            }, styleGuidePoint = { pointRadius: 10,

SuperMap 二维地图和三维场景弹窗窗口大小控制

注:此处所说的弹窗窗口,主要指的是那些弹窗窗口中嵌入iframe,包含信息页面的窗口大小控制. 1.首先来了解下 SuperMap 示例中的处理方案 二维的处理方式 1 //初始化Anchored类 2 popup = new SuperMap.Popup.Anchored( 3 "chicken", 4 marker.getLonLat(), 5 new SuperMap.Size(220,140), 6 "<iframe frameborder=no border=

【Cocos游戏实战】功夫小子第五课之帮助场景和选关功能的实现

功夫小子之帮助场景和选关功能的实现 转载请注明出处:http://blog.csdn.net/suool/article/details/46661231 本节课的视频教程地址是: 第五课在此 如果本教程有帮助到您,希望您能点击进去观看一下,而且现在注册成为极客学院的会员,即日起至7月1日,极客学院的 VIP 课程 30 天免费体验,想学编程的小伙伴速来,只针对新用户:http://e.jikexueyuan.com/invite/index.html?ZnJvbV9jb2RlPVkxblJUZ

如何使用MindMapper屏幕捕获功能

我们可以使用MindMapper屏幕捕获功能来添加我们需要截取的内容,以图片的形式进行添加.但它的使用并不只有这一层面,小编又发现了一个MindMapper屏幕捕获功能可以应用的范围,想知道就顺着本文读下去吧. 点击[工具]种的屏幕捕获图标就会进入屏幕捕获. 当然我们需要提前打开想要截图的页面,带我们截好图后,截图便会自动生成一个主题,如果我们当初是在点击画布的时候进行截图便会形成浮动主题,如果是中心主题或是任一主题便会形成下级主题. 我们这里要讲的是屏幕捕获的另外一种应用,我们可以将截取的图片

为Kindeditor控件添加图片自动上传功能

Kindeditor是一款功能强大的开源在线HTML编辑器,支持所见即所得的编辑效果.它使用JavaScript编写,可以无缝地与多个不同的语言环境进行集成,如.NET.PHP.ASP.Java等.官方网站可以查看这里:http://kindeditor.net/index.php Kindeditor本身提供了许多非常实用的插件,由于代码开源,开发人员可以根据需要对其进行任意扩展和修改. 在使用Kindeditor编辑网站内容时考虑这样一个场景:编辑人员往往会从其它页面或者Word文档将内容复