Gox语言中实现屏幕截图-GX38

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知识