Gox语言中实现屏幕截图-GX38
2015 年 4 月 11 日
Gox语言重在快速应用,追求几行代码就能够实现复杂的功能,所以其中内置了很多可以直接使用的功能库。屏幕截图就是很实用的一个功能,Gox中内置了github.com/kbinani/screenshot包,支持跨平台的屏幕截图,并且支持多显示器,支持指定区域截图。
下面就是一个屏幕截图的实例代码,
// 设置github.com/kbinani/screenshot包的简称 screenshot = github_kbinani_screenshot // 显示有几个显示器以及 pl("Total screen count: %v", screenshot.NumActiveDisplays()) // 获取第一个显示器的屏幕尺寸区域 bounds := screenshot.GetDisplayBounds(0) // 截取该屏幕截图 img, _ := screenshot.CaptureRect(bounds) // 保存截图到png格式的图片文件 fileName := fmt.Sprintf("screenshot1_%vx%v.png", bounds.Dx(), bounds.Dy()) file, _ := os.Create(fileName) defer file.Close() image_png.Encode(file, img)
代码只有短短几行,其中已有详尽注释,运行后会在当前目录下生成当前电脑第一个显示器的全屏截图。我们可以稍作修改进行多屏幕的截取、指定区域的截取、截取后发送、上传服务器等下一步操作,也可以进行周期性定时截图等。
注意,为了突出重点,也是因为脚本语言就是为了快速,没有必要精心预防各种低概率的异常事件,所以本例中没有处理一些异常情况,如果需要可以自行补齐。
注意:
-
Gox语言是脱胎于Go语言(Golang)的开源脚本语言,解释执行,但相比Go语言更贴近高级语言,语法硬性限制也少一些;是一门偏向快速应用的语言,也可以说是一个集成工具;
-
Gox语言主要优势有三点:
- 第一,Gox语言本身只有一个可执行文件,绿色免配置,下载即可使用,无需安装Go语言环境,无需编译,非常适合快速制作原型以及云服务器上的远程开发;
- 第二,Gox中可以直接使用绝大多数Go语言标准库中的对象和方法函数,也内置了很多常用、优秀的第三方库,充分发挥Go语言多年积累的资源优势;
- 第三,与很多其他主流语言不同,Gox语言着力解决了GUI图形界面编程的问题,内置了基于Giu(imgui)、LCL、Sciter的三套图形界面编程库,直接可以进行快捷高效的图形界面开发(LCL、Sciter只需分别下载一个动态链接库文件,执行和分发时附带上即可),特别适合编写演示原型系统。
Gox的官网在 这里 ,也可以在浏览器搜索引擎中直接搜索“gox语言”,Github页面在 这里 ,在 这里 可以看到很多Gox语言的学习指南和实际应用实例。
欢迎关注我们的微信公众号,每天学习Go知识