Функция PixelSearch

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


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

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

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

Примечания

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

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

См. также

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

Пример

; Найти чисто красный пиксель в прямоугольнике 0,0-20,300
$coord = PixelSearch(0, 0, 20, 300, 0xFF0000)
If Not @error Then
    MsgBox(0, "X и Y равны:", $coord[0] & "," & $coord[1])
EndIf

; Найти чисто красный пиксель или пиксель с отклонением 10 градаций от чисто красного
$coord = PixelSearch(0, 0, 20, 300, 0xFF0000, 10)
If Not @error Then
    MsgBox(0, "X и Y равны:", $coord[0] & "," & $coord[1])
EndIf