Функция PixelChecksum

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


PixelChecksum

Генерирует контрольную сумму области пикселей.

PixelChecksum ( left, top, right, bottom [, step = 1 [, hwnd [, mode = 0 ]]] )

Параметры

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

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

Успех:Возвращает контрольную сумму указанного региона.
Ошибка:Возвращает 0.

Примечания

Контрольная сумма позволяет узнать, "изменилось" ли что-нибудь в указанном регионе - она не может дать однозначный ответ о том, что именно изменилось.

Предыдущие версии были очень медленными, однако теперь функция работает намного быстрее. Использование параметра step более не рекомендуется. Прирост производительности в этом случае не такой большой, но, с другой стороны, функция начинает быть менее надёжной при ответе на вопрос, изменилось ли что-нибудь в указанном регионе.

Контрольная сумма CRC32 несколько медленнее, чем ADLDER, но лучше обрабатывает изменения пикселей .

См. также

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

Пример

; Ожидание пока что нибудь изменится в прямоугольной области от 0,0 до 50,50

; Получает начальную контрольную сумму
$checksum = PixelChecksum(0, 0, 50, 50)

; Ожидает изменение в области, которая проверяется каждые 100мс, чтобы уменьшить нагрузку на процессор
While $checksum = PixelChecksum(0, 0, 50, 50)
    Sleep(100)
WEnd

MsgBox(4096, "", "В указанной области произошли изменения!")