Что нового

как работает PixelCheckSum?

Flame_xXx

Новичок
Сообщения
18
Репутация
0
подскажите пожалуйста как работает PixelCheckSum? Для чего она нужна. Я не особо разобрался. Желательно с примером пожалуйста.
 

SyDr

Сидра
Сообщения
651
Репутация
158
A checksum only allows you to see if "something" has changed in a region - it does not tell you exactly what has changed.
Функция позволяет узнать, изменилось ли что-нибудь в указанном регионе... но не позволяет узнать, что именно.

Пример из справки:
Код:
; Wait until something changes in the region 0,0 to 50,50

; Get initial checksum
$checksum = PixelChecksum(0,0, 50,50)

; Wait for the region to change, the region is checked every 100ms to reduce CPU load
While $checksum = PixelChecksum(0,0, 50, 50)
  Sleep(100)
WEnd

MsgBox(0, "", "Something in the region has changed!")

Будет ждать, пока что-нибудь не изменится в левом верхнем углу экрана. (Можно туда курсор загнать или ещё что-нибудь).
 
Автор
F

Flame_xXx

Новичок
Сообщения
18
Репутация
0
Ясно, а что же возвращается в переменную $checksum? булевское значение?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Судя по всему - просто уникальное число.
 
Автор
F

Flame_xXx

Новичок
Сообщения
18
Репутация
0
А если при одних и тех же условиях будут одинаковые изменения, уникальное число будет одинаковым или различаться? Мне как раз надо проверять на изменение. Надо поэксперементировать..
 

akoulev

Новичок
Сообщения
169
Репутация
2
"Уникальное число" будет одинаковым, ибо это число - просто контрольная сумма пикселей в заданной области (in the region 0,0 to 50,50).
Кстати: чтобы машинка побыстрее работала, не обсчитывая излишние пиксели, в формат команды можно добавлять ещё один параметр:
Код:
$checksum = PixelChecksum(0,0, 50,50,2)

: 2 или 4. Это значит, что суммироваться будет только каждый 2-й (второй), или каждый 4-й пиксель.
Hint: "при одних и тех же условиях" - это буквально: сдвижка окна всего на 1 пиксель эти условия сдвинет практически безвозвратно!
 
Верх