Описание функции


PixelSearch

Ищет пиксель указанного цвета в указанной прямоугольной области экрана.

PixelSearch(left,top,right,bottom,color[,shade-variation=0[,step=1[,hwnd]]])

Параметры

left Координата x левой стороны прямоугольника.
top Координата y верхней стороны прямоугольника.
right Координата x правой стороны прямоугольника.
bottom Координата y нижней стороны прямоугольника.
color Цвет пикселя для поиска (в десятичном или шестнадцатеричном виде).
shade-variation [необязательный] Число от 0 до 255, показывающее, на сколько может отличаться красная, зелёная и синяя компоненты цвета. По умолчанию 0 (точное совпадение).
step [необязательный] Вместо поиска каждого пикселя используйте значения больше чем 1, чтобы пропускать часть пикселей (для ускорения работы). Например, значение 2 означает, что будет использоваться только каждый второй пиксель. По умолчанию 1.
hwnd [необязательный] Дескриптор окна. Требуется переключить опцию PixelCoordMode в 0 или 2

Возвращаемое значение

Успех:Возвращает двухэлементный массив с координатами пикселя ($var_array[0]=x, $var_array[1]=y).
Ошибка:Устанавливает @error равным 1, если пиксель указанного цвета не найден.

Примечания

Направление поиска изменяется в зависимости от того, как указаны границы прямоугольника:
    Слева направо - left < right
    Справа налево - right < left
    Сверху вниз - top < bottom
    Снизу вверх - bottom < top
Изменение направления поиска может быть полезно в том случае, если цвет, который нужно найти, чаще появляется в определённой части области для поиска, поскольку в этом случае функция будет быстрее находить искомый пиксель.

Помните, обычно дисплей имеет разрешение не менее 1024 x 768 (это 786432 пикселей ). Не смотря на то, что PixelSearch() оптимизирована, уменьшение области поиска поможет сильно ускорить результат.

Функцию можно подключить через команду exect

См. также

PixelChecksum, PixelGetColor, PixelCoordMode (Опция)

Примеры:
 Как создать кнопку?


exect=$var_a=PixelSearch(0,0,20,300,0xFF0000)||IsArray($var_a)?_ViewValues($var_a):_ViewValues('цвет~~не~~найден') ;; получить массив координат пикселя красного цвета


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru