diff --git a/robotgo.go b/robotgo.go index 048a32f..3e07475 100644 --- a/robotgo.go +++ b/robotgo.go @@ -820,6 +820,19 @@ func TostringBitmap(bit C.MMBitmapRef) *C.char { return strBit } +// ToBitmap trans C.MMBitmapRef to Bitmap +func ToBitmap(bit C.MMBitmapRef) Bitmap { + bitmap := Bitmap{ + ImageBuffer: (*uint8)(bit.imageBuffer), + Width: int(bit.width), + Height: int(bit.height), + Bytewidth: int(bit.bytewidth), + BitsPerPixel: uint8(bit.bitsPerPixel), + BytesPerPixel: uint8(bit.bytesPerPixel), + } + return bitmap +} + // GetPortion get portion func GetPortion(bit C.MMBitmapRef, x, y, w, h C.size_t) C.MMBitmapRef { var rect C.MMRect diff --git a/test/main.go b/test/main.go index 9fdce95..4b999af 100644 --- a/test/main.go +++ b/test/main.go @@ -12,6 +12,7 @@ package main import ( "fmt" + "reflect" "github.com/go-vgo/robotgo" ) @@ -58,6 +59,11 @@ func aRobotgo() { robotgo.SaveBitmap(bitmap, "test.png", 1) + var bitmapTest robotgo.Bitmap + bitTest := robotgo.OpenBitmap("test.png") + bitmapTest = robotgo.ToBitmap(bitTest) + fmt.Println("...type", reflect.TypeOf(bitTest), reflect.TypeOf(bitmapTest)) + // robotgo.MouseClick() robotgo.ScrollMouse(10, "up") }