From 336b7cea9fb8c7315ee4590b67ccb09603b4e7e4 Mon Sep 17 00:00:00 2001 From: vcaesar Date: Tue, 12 Oct 2021 12:03:50 -0400 Subject: [PATCH 1/3] add free bitmap array support and Update README.md --- README.md | 17 +++++++++++++++++ README_zh.md | 17 +++++++++++++++++ robotgo.go | 9 ++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a5274d..1ff7b90 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,7 @@ import ( "fmt" "github.com/go-vgo/robotgo" + "github.com/vcaesar/imgo" ) func main() { @@ -197,6 +198,13 @@ func main() { sx, sy := robotgo.GetScreenSize() fmt.Println("get screen size: ", sx, sy) + + bit := robotgo.CaptureScreen(10, 10, 30, 30) + defer robotgo.FreeBitmap(bit) + robotgo.SaveBimap(bit, "test_1.png") + + img := robotgo.ToImage(bit) + imgo.Save("test.png", img) } ``` @@ -248,6 +256,15 @@ func opencv() { defer robotgo.FindBitmap(bit) fmt.Print("find bitmap: ") fmt.Println(robotgo.FindBitmap(bit)) + + bit0 := robotgo.CaptureScreen() + img := robotgo.ToImage(bit0) + bit1 := robotgo.CaptureScreen(10, 10, 30, 30) + img1 := robotgo.ToImage(bit1) + defer robotgo.FreeBitmapArr(bit0, bit1) + + fmt.Print("gcv find image: ") + fmt.Println(gcv.FindImg(img1, img)) } ``` diff --git a/README_zh.md b/README_zh.md index 502a0f4..1660c6c 100644 --- a/README_zh.md +++ b/README_zh.md @@ -184,6 +184,7 @@ import ( "fmt" "github.com/go-vgo/robotgo" + "github.com/vcaesar/imgo" ) func main() { @@ -195,6 +196,13 @@ func main() { sx, sy := robotgo.GetScreenSize() fmt.Println("get screen size: ", sx, sy) + + bit := robotgo.CaptureScreen(10, 10, 30, 30) + defer robotgo.FreeBitmap(bit) + robotgo.SaveBimap(bit, "test_1.png") + + img := robotgo.ToImage(bit) + imgo.Save("test.png", img) } ``` @@ -246,6 +254,15 @@ func opencv() { defer robotgo.FindBitmap(bit) fmt.Print("find bitmap: ") fmt.Println(robotgo.FindBitmap(bit)) + + bit0 := robotgo.CaptureScreen() + img := robotgo.ToImage(bit0) + bit1 := robotgo.CaptureScreen(10, 10, 30, 30) + img1 := robotgo.ToImage(bit1) + defer robotgo.FreeBitmapArr(bit0, bit1) + + fmt.Print("gcv find image: ") + fmt.Println(gcv.FindImg(img1, img)) } ``` diff --git a/robotgo.go b/robotgo.go index 0a192ed..2b232d2 100644 --- a/robotgo.go +++ b/robotgo.go @@ -1215,12 +1215,19 @@ func Convert(opath, spath string, args ...int) { SaveBitmap(bitmap, spath, mtype) } -// FreeBitmap free and dealloc bitmap +// FreeBitmap free and dealloc the C bitmap func FreeBitmap(bitmap C.MMBitmapRef) { // C.destroyMMBitmap(bitmap) C.bitmap_dealloc(bitmap) } +// FreeBitmapArr free and dealloc the C bitmap array +func FreeBitmapArr(bit ...C.MMBitmapRef) { + for i := 0; i < len(bit); i++ { + FreeBitmap(bit[i]) + } +} + // ReadBitmap returns false and sets error if |bitmap| is NULL func ReadBitmap(bitmap C.MMBitmapRef) bool { abool := C.bitmap_ready(bitmap) From 088d6744539a42fcba43812c6da8d27c523f2736 Mon Sep 17 00:00:00 2001 From: vcaesar Date: Tue, 12 Oct 2021 12:07:16 -0400 Subject: [PATCH 2/3] Fixed a typo --- README.md | 2 +- README_zh.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1ff7b90..e12e3ac 100644 --- a/README.md +++ b/README.md @@ -201,7 +201,7 @@ func main() { bit := robotgo.CaptureScreen(10, 10, 30, 30) defer robotgo.FreeBitmap(bit) - robotgo.SaveBimap(bit, "test_1.png") + robotgo.SaveBitmap(bit, "test_1.png") img := robotgo.ToImage(bit) imgo.Save("test.png", img) diff --git a/README_zh.md b/README_zh.md index 1660c6c..86f0420 100644 --- a/README_zh.md +++ b/README_zh.md @@ -199,7 +199,7 @@ func main() { bit := robotgo.CaptureScreen(10, 10, 30, 30) defer robotgo.FreeBitmap(bit) - robotgo.SaveBimap(bit, "test_1.png") + robotgo.SaveBitmap(bit, "test_1.png") img := robotgo.ToImage(bit) imgo.Save("test.png", img) From dc5f64ef65235a2fe98306375be12076b279c1d3 Mon Sep 17 00:00:00 2001 From: vcaesar Date: Tue, 12 Oct 2021 12:13:06 -0400 Subject: [PATCH 3/3] Update README.md --- README.md | 9 ++++++--- README_zh.md | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e12e3ac..cae9d07 100644 --- a/README.md +++ b/README.md @@ -132,11 +132,12 @@ func main() { robotgo.ScrollMouse(10, "up") robotgo.Scroll(100, 200) - robotgo.MoveMouse(10, 10) + robotgo.Move(10, 10) robotgo.Drag(10, 10) - robotgo.MouseClick("left", true) - robotgo.MoveMouseSmooth(100, 200, 1.0, 100.0) + robotgo.Click("left", true) + robotgo.MoveSmooth(100, 200, 1.0, 100.0) + robotgo.MouseToggle("up") } ``` @@ -169,6 +170,8 @@ func main() { arr := []string{"alt", "command"} robotgo.KeyTap("i", arr) + robotgo.KeyToggle("a", "down") + robotgo.WriteAll("Test") text, err := robotgo.ReadAll() if err == nil { diff --git a/README_zh.md b/README_zh.md index 86f0420..c6c1742 100644 --- a/README_zh.md +++ b/README_zh.md @@ -130,11 +130,12 @@ func main() { robotgo.ScrollMouse(10, "up") robotgo.Scroll(100, 200) - robotgo.MoveMouse(10, 10) + robotgo.Move(10, 10) robotgo.Drag(10, 10) - robotgo.MouseClick("left", true) - robotgo.MoveMouseSmooth(100, 200, 1.0, 100.0) + robotgo.Click("left", true) + robotgo.MoveSmooth(100, 200, 1.0, 100.0) + robotgo.MouseToggle("up") } ``` @@ -167,6 +168,8 @@ func main() { arr := []string{"alt", "command"} robotgo.KeyTap("i", arr) + robotgo.KeyToggle("a", "down") + robotgo.WriteAll("テストする") text, err := robotgo.ReadAll() if err == nil {