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/bitmap.go b/test/bitmap.go new file mode 100644 index 0000000..3e3b620 --- /dev/null +++ b/test/bitmap.go @@ -0,0 +1,17 @@ +package main + +import ( + "fmt" + "reflect" + + "github.com/go-vgo/robotgo" +) + +func main() { + + var bitmap robotgo.Bitmap + bit := robotgo.OpenBitmap("./test.bmp", 2) + bitmap = robotgo.ToBitmap(bit) + fmt.Println("...type", reflect.TypeOf(bit), reflect.TypeOf(bitmap)) + +} diff --git a/test/test.bmp b/test/test.bmp new file mode 100644 index 0000000..897b993 Binary files /dev/null and b/test/test.bmp differ