From b5676fa2583d95e155b6046f3e62fdffbc29327e Mon Sep 17 00:00:00 2001 From: weilong Date: Sun, 24 Dec 2017 20:48:35 +0800 Subject: [PATCH] add func ToBitmap Fixed #90 --- robotgo.go | 13 +++++++++++++ test/bitmap.go | 17 +++++++++++++++++ test/test.bmp | Bin 0 -> 15878 bytes 3 files changed, 30 insertions(+) create mode 100644 test/bitmap.go create mode 100644 test/test.bmp 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 0000000000000000000000000000000000000000..897b99346d859eaef18369a045e7673f45a513bb GIT binary patch literal 15878 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 G5dIa5=Cv^Z literal 0 HcmV?d00001