1 (изменено: Shoomer, 2010-10-07 15:18:56)

Тема: AHK: Как определить изменение яркости области экрана?

Всем привет! Подскажите, пожалуйста, как можно определить появление намного более светлых пикселов в опред. области, чем обычно? AHK выдает цвет в HEX, а яркость определяется по RGB - (0.299*R + 0.587*G + 0.114*B). Как это можно реализовать?

upd

Кстати, вот нашел конвертер

(getColorRGB(BGRColor, ByRef R, ByRef G, ByRef B)
{
    R := BGRColor & 0xFF
    G := BGRColor >> 8 & 0xFF
    B := BGRColor >> 16 & 0xFF
}

Хм... Получается, осталось только сканить область на предмет яркости, близкой к нужной?

2 (изменено: Shoomer, 2010-10-07 17:45:22)

Re: AHK: Как определить изменение яркости области экрана?

Как-то так:

Esc::
ExitApp

+RButton::

Loop {
Sleep 3000
                
getColorRGB(BGRColor, ByRef R, ByRef G, ByRef B)
{
    R := BGRColor & 0xFF
    G := BGRColor >> 8 & 0xFF
    B := BGRColor >> 16 & 0xFF
BrightVar := (0.299*R + 0.587*G + 0.114*B)
MsgBox, RGB=%R% %G% %B%
MsgBox, Яркость=%BrightVar%
}

}

И когда BrightVar>150, do something.

Но как сделать так, чтобы скрипт реагировал только тогда, когда этих пикселов не 1, а более? И мой вариант работает только с пикселом под курсором.

3

Re: AHK: Как определить изменение яркости области экрана?

Shoomer пишет:

Но как сделать так, чтобы скрипт реагировал только тогда, когда этих пикселов не 1, а более?

Проверять нужное количество пикселов с заданными координатами.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Как определить изменение яркости области экрана?

Я не знаю, как это сделать


MouseGetPos, xpos, ypos, CoordMode
Rvar := xpos-6
Tvar := ypos-6
Yvar := xpos+6
Uvar := ypos+6
PixelSearch, Gx, Gy, Rvar, Tvar, Yvar, Uvar, 0x7B8CB4, 8, Fast

Вот этим я научился задавать нужную область для поиска пиксела с его вариантами. Но это ищется один пиксел заданного цвета, а мне нужно находить несколько пикселов с опред. яркостью.

5

Re: AHK: Как определить изменение яркости области экрана?

Если заранее координаты пиксела неизвестны, тогда проблематично.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Как определить изменение яркости области экрана?

Да? Ок, попробую что-нибудь еще. Спасибо вам.

7

Re: AHK: Как определить изменение яркости области экрана?

По-моему, вопрос поставлен, как минимум, не ясно. Попробуйте изложить свою мысль точнее. Я так и не понял, яркость области повышается относительно остального пространства, или по сравнению с предыдущим значением яркости той же области.

8 (изменено: Shoomer, 2010-10-07 22:33:25)

Re: AHK: Как определить изменение яркости области экрана?

Извините, точность выражения мыслей действительно хромает. Яркость области повышается на какое-то время по сравнению с предыд. значением. И для подтверждения нужно найти хотя бы 3 пиксела с увеличенной яркостью одновременно.
Из этого вопроса возникает еще один)
Реально ли силами АНК написать скрипт, который будет отслеживать скорость изменения части изображения и реагировать на те области экрана, где изменения больше? (это для игры, для нахождения местоположения монстров и нпс)
У меня пока только одна идея - сохранять скришот и сравнивать его с предыдущим, "порезав" на области для удобства. Но нет ли нормальных путей?

upd
Хммм... Например, зацепиться за какой-нибудь цвет (с оттенками) и смотреть, меняются ли его координаты и если да, то насколько сильно.

9

Re: AHK: Как определить изменение яркости области экрана?

Известны координаты области?
Известно, когда изменится яркость?
Что значит "отслеживать скорость изменения части изображения"?
Что значит "изменения больше"?
Также желательно выложить скриншот.

10

Re: AHK: Как определить изменение яркости области экрана?

Возможно, имеет смысл периодически проверять не все все, но какое-то количество пикселов области, изменение которых наиболее вероятно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder