Что нового

Поиск неопределённого цвета.

Arei

Скриптер
Сообщения
938
Репутация
115
Скажите, а как сделать поиск не определённого цвета,а ещё его оттенки.Пытаюсь сделать при увеличении shade-variation в PixelSearch.Но что то не получается .
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Получается как найди то, не зная что...
Поподробнее, желательно с примерами(=
П.С. Меня тоже это интересует, хотелось бы услышать совет.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Код:
$Xn = 0 ; абсолютная Х-координата верхней-левой точки сканируемого прямоугольника области экрана.
$Yn = 0 ; абсолютная Y-координата верхней-левой точки.
$Xk = 800 ; абсолютная Х-координата нижней-правой точки прямоугольника.
$Yk = 600 ; абсолютная Y-координата нижней-правой точки.
$Color = 0xFF0000 ;Это красный цвет, коды остальных цветов можно легкой найти через Google.
$Dip_Col = 50 ;Допустимое несовпадение цвета от указанного (допустимое значение от 0 - точное, до 255).

$Rezult = PixelSearch($Xn, $Yn, $Xk, $Yk, $Color, $Dip_Col) ;Сканирует область экрана 800х600 пикселей от первого верхнего левого пикселя экрана.
MouseMove($Rezult[0], $Rezult[1]) ;Результат записывается в массив из двух элементов (массив создается автоматически из указанной переменной).
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Скажи мне нужно условие что бы если нашел такой цвет то выполнить условие.На этот цикл не будет влиять погрешность.Или как подскажите.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Код:
$Xn = 0 ; абсолютная Х-координата верхней-левой точки сканируемого прямоугольника области экрана.
$Yn = 0 ; абсолютная Y-координата верхней-левой точки.
$Xk = 800 ; абсолютная Х-координата нижней-правой точки прямоугольника.
$Yk = 600 ; абсолютная Y-координата нижней-правой точки.
$Color = 0xFF0000 ;Это красный цвет, коды остальных цветов можно легкой найти через Google.
$Dip_Col = 50 ;Допустимое несовпадение цвета от указанного (допустимое значение от 0 - точное, до 255) - ПОГРЕШНОСТЬ.

$Rezult = PixelSearch($Xn, $Yn, $Xk, $Yk, $Color, $Dip_Col) ;Сканирует область экрана 800х600 пикселей от первого верхнего левого пикселя экрана.
If @error = 0 Then
	MouseMove($Rezult[0], $Rezult[1]) ;Результат записывается в массив из двух элементов (массив создается автоматически из указанной переменной).
EndIf
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Спасибо примерно так и думал, это во всех так подходит.И ещё скажите у меня есть координата на экране 1718 на 857, как мне от неё сделать, и что бы искало в диапазоне, +30.Заранее спасибо.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Код:
$Xn = 1718 ; абсолютная Х-координата верхней-левой точки сканируемого прямоугольника области экрана.
$Yn = 857 ; абсолютная Y-координата верхней-левой точки.
$Xk = 1920 ; абсолютная Х-координата нижней-правой точки прямоугольника.
$Yk = 1080 ; абсолютная Y-координата нижней-правой точки.
$Color = 0xFF0000 ;Это красный цвет, коды остальных цветов можно легкой найти через Google.
$Dip_Col = 30 ;Допустимое несовпадение цвета от указанного (допустимое значение от 0 - точное, до 255).

$Rezult = PixelSearch($Xn, $Yn, $Xk, $Yk, $Color, $Dip_Col)
If @error = 0 Then
	MouseMove($Rezult[0], $Rezult[1]) ;Результат записывается в массив из двух элементов (массив создается автоматически из указанной переменной).
EndIf


Ищет от указанной координаты, до конца экрана (нижнего правого угла) с погрешностью в 30.
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
не я не так выразился извините, мне надо что бы цвет искал ся в квадрате размером 30.Извините.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Код:
$Xn = 1718 ; абсолютная Х-координата верхней-левой точки сканируемого прямоугольника области экрана.
$Yn = 857 ; абсолютная Y-координата верхней-левой точки.
$Xk = 1748; абсолютная Х-координата нижней-правой точки прямоугольника.
$Yk = 887 ; абсолютная Y-координата нижней-правой точки.


1718 + 30 = 1748 и 857 + 30 = 887
 
Автор
A

Arei

Скриптер
Сообщения
938
Репутация
115
Спасибо, сам не понял зачем задал вопрос. :smile:
 
Верх