Нужно определить среднюю яркость пикселей по контуру прямоугольника в центре экрана. Снапшоты и определение цвета пикселей через FastFind, в нем все работает как часы. Конвертер тоже работает как надо. Писал вот такой код:
Функция возвращает всегда 24990. Вот такое работает как надо:
В упор не вижу разницы в коде, но одно работает, а другое нет. В чем дело?
Код:
Func box()
FFSnapShot(900, 500, 1020, 580)
Global $b = 0
For $i = 1 To 119
$var = FFGetPixel($i, 1) ;Получаем цвет пикселя
$var1hsb = _RGBtoHSB(colorSplit($var)[0], colorSplit($var)[1], colorSplit($var)[2]) ;Конвертируем RGB в HSB
$b = $b + $var1hsb[2] ; Плюсуем яркость пикселя
$var = FFGetPixel($i, 79)
$var1hsb = _RGBtoHSB(colorSplit($var)[0], colorSplit($var)[1], colorSplit($var)[2])
$b = $b + $var1hsb[2]
Next
For $i = 1 To 79
$var = FFGetPixel(1, $i)
$var1hsb = _RGBtoHSB(colorSplit($var)[0], colorSplit($var)[1], colorSplit($var)[2])
$b = $b + $var1hsb[2]
$var = FFGetPixel(119, $i)
$var1hsb = _RGBtoHSB(colorSplit($var)[0], colorSplit($var)[1], colorSplit($var)[2])
$b = $b + $var1hsb[2]
Next
Return ($b/(238+158))
EndFunc
Функция возвращает всегда 24990. Вот такое работает как надо:
Код:
Func react()
If $Started Then
FFSnapShot()
$var = FFGetPixel(960, 540)
$color = 20
$var1hsb = _RGBtoHSB(colorSplit($var)[0], colorSplit($var)[1], colorSplit($var)[2])
if $var1hsb[2] < $color Then
MouseClick("left")
Sleep(10)
EndIf
EndIf
EndFunc
В упор не вижу разницы в коде, но одно работает, а другое нет. В чем дело?