是否有跨平臺的方式來捕捉谷歌的Go屏幕?或者任何方式,但跨平臺將是首選。在Go中捕獲屏幕?
回答
不幸的是,沒有圖書館來做到這一點。對於magickwand(C編程語言和ImageMagick圖像處理庫)有幾個綁定,請參閱http://go-lang.cat-v.org/library-bindings,但這些是不完整的,並且沒有屏幕捕獲功能。
同時,如GeertJohan所建議的,您可以使用os.exec來運行外部程序並捕獲屏幕(請參閱下面的示例代碼)。例如,你可以使用import
命令從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())
}
我不知道任何跨平臺庫(應該可以運行ImageMagick的一個平臺上工作),但你可以用做當X服務器存在時,存儲庫爲xgbutil。你可以看到一個example of how to capture a screenshot here。
如果你想在Mac/Windows系統上使用這個工具,我可能會先檢查源代碼爲go.wde,其中包括Windows和Mac的後端。我懷疑你會直接找到代碼來捕獲截圖,但它可能會給你一些提示或路徑。
沒有跨平臺的方式捕獲谷歌的Go屏幕,因爲捕獲屏幕依賴於底層操作系統的特定API。但有這樣做的Go的庫。
它是。這是一個兩步過程:
研究https://github.com/ShareX/ShareX/tree/master/ShareX.ScreenCaptureLib看看哪個win32 API調用捕獲屏幕/窗口 將該邏輯轉換爲Go。您可以使用少數現有的win32 api Go綁定之一(例如https://github.com/AllenDang/w32)。如果他們缺少必要的功能,可以添加更多的包裝。
現在有:
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
}
如果你需要MacOS的支持,以及(直到拉入請求合併),得到:
vova616 /截圖還有另一個答案,但由於缺乏對macOS的支持,它還沒有真正的跨平臺。我最近實施了一個本地解決方案,希望它能儘快幫助更多的開發人員! – Kesarion
- 1. 屏幕捕獲在IOS中
- 2. 捕獲屏幕
- 3. 捕獲屏幕
- 4. 登錄屏幕中的屏幕捕獲
- 5. 捕獲android屏幕
- 6. PowerShell屏幕捕獲
- 7. windows屏幕捕獲
- 8. 屏幕捕獲API
- 9. HTML5捕獲屏幕
- 10. GLUT屏幕捕獲在C
- 11. 在Android的屏幕捕獲
- 12. 屏幕捕獲的代碼屏幕捕獲Android的任何屏幕
- 13. 捕獲屏幕圖像而不捕獲屏幕捕獲垃圾郵件
- 14. 在C++中發送屏幕捕獲流
- 15. 在Android中使用CoronaActivity捕獲屏幕
- 16. 在MVC中捕獲屏幕圖像
- 17. 如何在wpf中捕獲屏幕?
- 18. 在硒中捕獲屏幕截圖
- 19. 會話0捕獲屏幕
- 20. 捕獲屏幕截圖
- 21. 捕獲MKMapView屏幕截圖
- 22. 屏幕捕獲問題
- 23. ASP.NET - 捕獲屏幕截圖
- 24. 即時屏幕捕獲Java
- 25. 使用CGDisplayStream捕獲屏幕
- 26. Iphone屏幕視頻捕獲
- 27. 禁用屏幕捕獲wp7
- 28. 使用SDL捕獲屏幕?
- 29. Python屏幕捕獲錯誤
- 30. 快速iphone屏幕捕獲
在stackoverflow.com上,當你認爲某些答案有幫助或解決了你的問題時,你應該加大它(按下三角形)或接受它(按下三角形下面的棒)。 – rputikar