天天看点

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

我对这个程序最熟悉,因为是我写的

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

。就把它作为第一个介绍吧。

2009年,当时还没有程序商店,但我们团队已经在Autodesk Labs上开始撰写每月插件。我们旨在为最终用户提供综合性,有用的解决方案。大部分问题来自速博用户。对于一些用户,他们没有开发能力,而让他们去找ADN,可能又有不便,而我们开发部也有开发计划,并不是总能安排这样的解决方案。所以,我们团队琢磨着帮助编写。另外,这些程序全部公布源代码,为开发者也提供了学习和参考的样例。我们已经有好几个 AutoCAD程序,时任团队高级经理的Kean让我试试写第一个Inventor的。他已经写了一个AutoCAD插件:Screenshot  for AutoCAD,即能对AutoCAD屏幕内容做截图,图纸级或对象级的。于是我们商量Inventor也来个截图。后来成为第一批移入商店的程序,作为免费程序供大家使用。

截图软件太多了,起先我想,是不是有点多余。但等做完后,得到的反响很不错。对于很多用户来讲,他们宁愿一个随着Inventor使用的程序,而不需要另外再启动其它截图程序。当然,本程序也有一些小特色,我想也是吸引用户的原因吧。下面会做介绍。

首先,下载地址:

http://apps.exchange.autodesk.com/INVNTOR/Detail/Index?id=autodesk.appstore.exchange.autodesk.com%3aADNPlugins_ScreenshotInventor%3aen 

安装后,在零件,装配,工程图的Ribbon>>工具选项卡上就能看到一个相机的菜单。

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

点击它,会弹出一个对话框:

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

Selection Options: 提供三种模式

应用程序级:截取整个Inventor程序的内容。包括Ribbon,状态栏等。如上图。

文档级:       截取文档内容,即在可视区看到的内容,例如下图:

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

自定义窗口级:让用户任意选择文档中的区域,截图。Windows< 按钮用来开始拾取区域例如下图:

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

Settings: 提供调整灰度的设置

Background:常规型和白色。选择白色,文档中的背景色将为白色。

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

Foreground: 常规型和黑色。选择黑色,文档中的前景色将为黑色。例如零件文档中的实体。

GraySacle:  灰度设置,打开则将截图像素全部做灰度处理。例如:

商店程序:Inventor屏幕抓图 (Screenshot for Inventor)

Output Location: 提供三种方式保存截图:剪贴板,文件,打印机。当按下 Save Screenshot,选取的保存方式将依次执行。

一些技术细节:

1) Application或文档级别的截图,是获取窗口的角点和范围,用Windows API的Bitmap直接创建。自定义窗口级别的,是启动了交互事件,选取区域

2)背景色:在零件或装配中,先临时改变Application.ActiveColorScheme.ScreenColor为白色,关闭对话框,截图创建Bitmap,最后恢复原ScreenColor。工程图中先改变SheetSettings.SheetColor为白色,截图后再恢复。

3)前景色和灰度一个算法,只是颜色不同。即遍历每个像素,判断该像素是否和背景色同色,前景色为黑情况下,改变为黑,灰度时,改变为对应灰度

4 ) 保存到剪贴板,调用System.Windows.Forms.Clipboard.SetImage。保存到文件,先弹出文件对话框,调用bitmap.Save。打印机模式用System.Windows.Forms.PrintDialog管理打印