21

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

 4 years ago
source link: https://studygolang.com/articles/29426
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

FveQFjN.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK