update find bitmap and color

This commit is contained in:
vcaesar 2021-01-31 12:44:15 -04:00
parent 488a81253f
commit 25a4002924
2 changed files with 10 additions and 3 deletions

View File

@ -75,7 +75,7 @@ MMPointArrayRef find_every_bitmap(MMBitmapRef bitmap, MMBitmapRef sbit, float to
MMRect rect = MMBitmapGetBounds(sbit); MMRect rect = MMBitmapGetBounds(sbit);
if (findBitmapInRect(bitmap, sbit, &point, rect, tolerance) == 0) { if (findBitmapInRect(bitmap, sbit, &point, rect, tolerance) == 0) {
return NULL; // return NULL;
} }
pointArray = findAllBitmapInRect(bitmap, sbit, rect, tolerance); pointArray = findAllBitmapInRect(bitmap, sbit, rect, tolerance);

View File

@ -1055,10 +1055,13 @@ func FindEveryBitmap(bit C.MMBitmapRef, args ...interface{}) (posArr []MPoint) {
pos := C.find_every_bitmap(bit, sbit, tolerance, &lpos) pos := C.find_every_bitmap(bit, sbit, tolerance, &lpos)
// FreeBitmap(bit) // FreeBitmap(bit)
defer FreeMMPointArr(pos)
if len(args) <= 0 { if len(args) <= 0 {
FreeBitmap(sbit) FreeBitmap(sbit)
} }
if pos == nil {
return
}
defer FreeMMPointArr(pos)
cSize := pos.count cSize := pos.count
cArray := pos.array cArray := pos.array
@ -1346,11 +1349,15 @@ func FindEveryColor(color CHex, args ...interface{}) (posArr []MPoint) {
} }
pos := C.bitmap_find_every_color(bitmap, C.MMRGBHex(color), tolerance, &lpos) pos := C.bitmap_find_every_color(bitmap, C.MMRGBHex(color), tolerance, &lpos)
defer FreeMMPointArr(pos)
if len(args) <= 0 { if len(args) <= 0 {
FreeBitmap(bitmap) FreeBitmap(bitmap)
} }
if pos == nil {
return
}
defer FreeMMPointArr(pos)
cSize := pos.count cSize := pos.count
cArray := pos.array cArray := pos.array
gSlice := (*[1 << 30]C.MMPoint)(unsafe.Pointer(cArray))[:cSize:cSize] gSlice := (*[1 << 30]C.MMPoint)(unsafe.Pointer(cArray))[:cSize:cSize]