From a2de92f455049a615b1e32e6b5567350dca50b31 Mon Sep 17 00:00:00 2001 From: vCaesar Date: Sun, 23 Oct 2016 23:39:09 +0800 Subject: [PATCH] Update bitmap --- bitmap/bitmap_class.h | 2 +- bitmap/goBitmap.h | 13 ++++++++++--- robotgo.go | 32 ++++++++++++++++++++++++++++++-- 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/bitmap/bitmap_class.h b/bitmap/bitmap_class.h index 28f56fd..14af468 100644 --- a/bitmap/bitmap_class.h +++ b/bitmap/bitmap_class.h @@ -23,4 +23,4 @@ BitmapObject BitmapObject_FromMMBitmap(MMBitmapRef bitmap); // #endif /* PY_BITMAP_CLASS_H */ //,MMRect rect -MMPoint aFindBitmap(MMBitmapRef bit_map); \ No newline at end of file +MMPoint aFindBitmap(MMBitmapRef bit_map,MMRect rect); \ No newline at end of file diff --git a/bitmap/goBitmap.h b/bitmap/goBitmap.h index 790fd45..9e3dad6 100644 --- a/bitmap/goBitmap.h +++ b/bitmap/goBitmap.h @@ -18,9 +18,8 @@ #include #include -MMPoint aFindBitmap(MMBitmapRef bit_map){ - // ,MMRect rect - MMRect rect; +MMPoint aFindBitmap(MMBitmapRef bit_map,MMRect rect){ + // MMRect rect; // rect.size.width=10; // rect.size.height=20; // rect.origin.x=10; @@ -68,3 +67,11 @@ char *aTostringBitmap(MMBitmapRef bitmap){ return buf; } + +MMBitmapRef aGetPortion(MMBitmapRef bit_map,MMRect rect){ + // MMRect rect; + MMBitmapRef portion = NULL; + + portion = copyMMBitmapFromPortion(bit_map, rect); + return portion; +} diff --git a/robotgo.go b/robotgo.go index 8ccb808..c9cdc49 100644 --- a/robotgo.go +++ b/robotgo.go @@ -233,8 +233,25 @@ func SetKeyboardDelay(x C.size_t) { | |_) | | | | | | | | | / _____ \ | | |______/ |__| |__| |__| |__| /__/ \__\ | _| */ -func FindBitmap(bit C.MMBitmapRef) (C.size_t, C.size_t) { - pos := C.aFindBitmap(bit) +func FindBitmap(args ...interface{}) (C.size_t, C.size_t) { + var bit C.MMBitmapRef + bit = args[0].(C.MMBitmapRef) + + var rect C.MMRect + Try(func() { + rect.origin.x = C.size_t(args[1].(int)) + rect.origin.y = C.size_t(args[2].(int)) + rect.size.width = C.size_t(args[3].(int)) + rect.size.height = C.size_t(args[4].(int)) + }, func(e interface{}) { + Println("err:::", e) + // rect.origin.x = x + // rect.origin.y = y + // rect.size.width = w + // rect.size.height = h + }) + + pos := C.aFindBitmap(bit, rect) // Println("pos----", pos) return pos.x, pos.y } @@ -277,6 +294,17 @@ func TostringBitmap(bit C.MMBitmapRef) *C.char { return str_bit } +func GetPortion(bit C.MMBitmapRef, x, y, w, h C.size_t) C.MMBitmapRef { + var rect C.MMRect + rect.origin.x = x + rect.origin.y = y + rect.size.width = w + rect.size.height = h + + pos := C.aGetPortion(bit, rect) + return pos +} + /* ____ __ ____ __ .__ __. _______ ______ ____ __ ____ \ \ / \ / / | | | \ | | | \ / __ \ \ \ / \ / /