现在有:
https://github.com/vova616/screenshot
go get github.com/vova616/screenshot
例:
package main
import "github.com/vova616/screenshot"
func main() {
img, err := screenshot.CaptureScreen() // *image.RGBA
myImg := image.Image(img) // can cast to image.Image, but not necessary
}
Run Code Online (Sandbox Code Playgroud)
如果您还需要macOS支持(在合并拉取请求之前),请获取:
https://github.com/kesarion/screenshot
不幸的是,没有图书馆可以做到这一点.magickwand有几个绑定(C编程语言和ImageMagick图像处理库),请参阅http://go-lang.cat-v.org/library-bindings但这些都不完整,没有屏幕截图功能.
同时,正如GeertJohan建议的那样,您可以使用os.exec运行外部程序并捕获屏幕(请参阅下面的示例代码).例如,您可以使用import
来自imagemagick的命令来捕获屏幕(应该在可以运行imagemagick的平台上工作)
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
func main() {
var buf bytes.Buffer
path, err := exec.LookPath("import")
if err != nil {
log.Fatal("import not installed !")
}
fmt.Printf("import is available at %s\n", path)
cmd := exec.Command("import", "-window", "root", "root.png")
cmd.Stdout = &buf
cmd.Stderr = &buf
err = cmd.Run()
if err != nil {
panic(err)
}
fmt.Println(buf.String())
}
Run Code Online (Sandbox Code Playgroud)