mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-01 14:43:55 +00:00
add find every color code
This commit is contained in:
parent
b1dd8732ff
commit
5bf71e637e
@ -60,8 +60,7 @@ MMPoint find_bitmap(MMBitmapRef bitmap, MMBitmapRef sbit, float tolerance){
|
||||
// printf("x=%d, y=%d, width=%d, height=%d\n", rect.origin.x,
|
||||
// rect.origin.y, rect.size.width, rect.size.height);
|
||||
|
||||
if (findBitmapInRect(bitmap, sbit, &point,
|
||||
rect, tolerance) == 0) {
|
||||
if (findBitmapInRect(bitmap, sbit, &point, rect, tolerance) == 0) {
|
||||
return point;
|
||||
}
|
||||
|
||||
@ -69,19 +68,18 @@ MMPoint find_bitmap(MMBitmapRef bitmap, MMBitmapRef sbit, float tolerance){
|
||||
}
|
||||
|
||||
MMPoint *find_every_bitmap(MMBitmapRef bitmap, MMBitmapRef sbit, float tolerance, MMPoint *list){
|
||||
if (!bitmap_ready(bitmap) || !bitmap_ready(sbit)) return NULL;
|
||||
if (!bitmap_ready(bitmap) || !bitmap_ready(sbit)) { return NULL; }
|
||||
|
||||
MMPoint point;
|
||||
MMPointArrayRef pointArray;
|
||||
MMRect rect = MMBitmapGetBounds(bitmap);
|
||||
|
||||
if (findBitmapInRect(bitmap, sbit, &point,
|
||||
rect, tolerance) == 0) {
|
||||
if (findBitmapInRect(bitmap, sbit, &point, rect, tolerance) == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pointArray = findAllBitmapInRect(bitmap, sbit, rect, tolerance);
|
||||
if (pointArray == NULL) return NULL;
|
||||
if (pointArray == NULL) { return NULL; }
|
||||
|
||||
memcpy(list, pointArray->array, sizeof(MMPoint) * pointArray->count);
|
||||
destroyMMPointArray(pointArray);
|
||||
@ -93,7 +91,6 @@ int count_of_bitmap(MMBitmapRef bitmap, MMBitmapRef sbit, float tolerance){
|
||||
if (!bitmap_ready(bitmap) || !bitmap_ready(sbit)) return 0;
|
||||
|
||||
MMRect rect = MMBitmapGetBounds(bitmap);
|
||||
|
||||
return countOfBitmapInRect(bitmap, sbit, rect, tolerance);
|
||||
}
|
||||
|
||||
@ -126,9 +123,8 @@ MMBitmapRef bitmap_from_string(const char *str){
|
||||
MMBitmapRef bitmap;
|
||||
MMBMPStringError err;
|
||||
|
||||
if ((bitmap = createMMBitmapFromString(
|
||||
(unsigned char*)str, len, &err )
|
||||
) == NULL) {
|
||||
if ((bitmap = createMMBitmapFromString((unsigned char*)str, len, &err ))
|
||||
== NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -148,7 +144,6 @@ char *tostring_bitmap(MMBitmapRef bitmap){
|
||||
MMBMPStringError err;
|
||||
|
||||
buf = (char *)createStringFromMMBitmap(bitmap, &err);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
@ -174,7 +169,7 @@ MMBitmapRef get_portion(MMBitmapRef bit_map, MMRect rect){
|
||||
}
|
||||
|
||||
MMRGBHex bitmap_get_color(MMBitmapRef bitmap, size_t x, size_t y){
|
||||
if (!bitmap_ready(bitmap)) return 0;
|
||||
if (!bitmap_ready(bitmap)) { return 0; }
|
||||
|
||||
MMPoint point;
|
||||
point = MMPointMake(x, y);
|
||||
@ -197,6 +192,21 @@ MMPoint bitmap_find_color(MMBitmapRef bitmap, MMRGBHex color, float tolerance){
|
||||
return point;
|
||||
}
|
||||
|
||||
MMPoint *bitmap_find_every_color(MMBitmapRef bitmap, MMRGBHex color, float tolerance, MMPoint *list){
|
||||
if (!bitmap_ready(bitmap)) { return NULL; }
|
||||
MMRect rect = MMBitmapGetBounds(bitmap);
|
||||
MMPointArrayRef pointArray;
|
||||
|
||||
pointArray = findAllColorInRect(bitmap, color, rect, tolerance);
|
||||
if (pointArray == NULL) { return NULL; }
|
||||
|
||||
memcpy(list, pointArray->array, sizeof(MMPoint) * pointArray->count);
|
||||
destroyMMPointArray(pointArray);
|
||||
if (list == NULL) { return NULL; }
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
int bitmap_count_of_color(MMBitmapRef bitmap, MMRGBHex color, float tolerance){
|
||||
if (!bitmap_ready(bitmap)) return 0;
|
||||
MMRect rect = MMBitmapGetBounds(bitmap);
|
||||
|
Loading…
Reference in New Issue
Block a user