mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-01 14:43:55 +00:00
50 lines
2.1 KiB
C
50 lines
2.1 KiB
C
#pragma once
|
|
#ifndef COLOR_FIND_H
|
|
#define COLOR_FIND_H
|
|
|
|
#include "MMBitmap.h"
|
|
#include "MMPointArray.h"
|
|
|
|
/* Convenience wrapper around findColorInRect(), where |rect| is the bounds of
|
|
* the image. */
|
|
#define findColorInImage(image, color, pointPtr, tolerance) \
|
|
findColorInRect(image, color, pointPtr, MMBitmapGetBounds(image), tolerance)
|
|
|
|
/* Attempt to find a pixel with the given color in |image| inside |rect|.
|
|
* Returns 0 on success, non-zero on failure. If the color was found and
|
|
* |point| is not NULL, it will be initialized to the (x, y) coordinates the
|
|
* RGB color.
|
|
*
|
|
* |tolerance| should be in the range 0.0f - 1.0f, denoting how closely the
|
|
* colors need to match, with 0 being exact and 1 being any. */
|
|
int findColorInRect(MMBitmapRef image, MMRGBHex color, MMPoint *point,
|
|
MMRect rect, float tolerance);
|
|
|
|
/* Convenience wrapper around findAllRGBInRect(), where |rect| is the bounds of
|
|
* the image. */
|
|
#define findAllColorInImage(image, color, tolerance) \
|
|
findAllColorInRect(image, color, MMBitmapGetBounds(image), tolerance)
|
|
|
|
/* Returns MMPointArray of all pixels of given color in |image| inside of
|
|
* |rect|. Note that an array is returned regardless of whether the color was
|
|
* found; check array->count to see if it actually was.
|
|
*
|
|
* Responsibility for freeing the MMPointArray with destroyMMPointArray() is
|
|
* given to the caller.
|
|
*
|
|
* |tolerance| should be in the range 0.0f - 1.0f, denoting how closely the
|
|
* colors need to match, with 0 being exact and 1 being any. */
|
|
MMPointArrayRef findAllColorInRect(MMBitmapRef image, MMRGBHex color,
|
|
MMRect rect, float tolerance);
|
|
|
|
/* Convenience wrapper around countOfColorsInRect, where |rect| is the bounds
|
|
* of the image. */
|
|
#define countOfColorsInImage(image, color, tolerance) \
|
|
countOfColorsInRect(image, color, MMBitmapGetBounds(image), tolerance)
|
|
|
|
/* Returns the count of the given color in |rect| inside of |image|. */
|
|
size_t countOfColorsInRect(MMBitmapRef image, MMRGBHex color, MMRect rect,
|
|
float tolerance);
|
|
|
|
#endif /* COLOR_FIND_H */
|