Ищу пиксель рядом с которым на определенном расстоянии от него должен находиться другой пиксель с определенным цветом. Но скрипт не работает, пишет MsgBox(1,"", "konec"), а результата не возвращает, самостоятельно найти ошибку не получается. Помогите кто чем может :'(
Вообще хотелось сделать скрипт который искал первый пиксель
проверял 2ой пиксель на наличие необходимого цвета (расстояние между пикселями знаем)
если 2ой пиксель не искомого цвета, то перезадается область поиска
Вот скрипт полностью:
Вообще хотелось сделать скрипт который искал первый пиксель
Код:
$search_point1=PixelSearch($left_search, $top_search, 1160, 705, $point1, 10)
проверял 2ой пиксель на наличие необходимого цвета (расстояние между пикселями знаем)
Код:
$search_point2=PixelGetColor($search_point1[0]+($pix_X2-$pix_X1), $search_point1[1]+($pix_Y2-$pix_Y1))
если 2ой пиксель не искомого цвета, то перезадается область поиска
Код:
$search_point1=PixelSearch($left_search, $top_search, $left_search, 705, $point1, 10); продолжает искать в столбце пикселей на 1 пиксель ниже
Вот скрипт полностью:
Код:
#Include <Misc.au3>
#include <Array.au3>
HotKeySet ( "{ESC}" ,"_Exit")
While 1
If _IsPressed(71) Then ;~ Запуск по нажатию F2
MsgBox(1,"", "nachalo")
$pix_X1=625
$pix_Y1=395
$pix_X2=685
$pix_Y2=350
$point1=PixelGetColor($pix_X1, $pix_Y1)
$point2=PixelGetColor($pix_X2, $pix_Y2)
$left_search=375
$top_search=135
Local $search_point1, $search_point2
MsgBox(1,"", "nachalo poiska")
_Poisk_2_pix($search_point1)
MsgBox(1,"", "konec")
EndIf
Wend
Func _Poisk_2_pix($search_point1)
While $left_search<>1159
$top_search=135
$search_point1=PixelSearch($left_search, $top_search, 1160, 705, $point1, 10)
;_ArrayDisplay($search_point1)
If @error Then
MsgBox(1,"", "net pix")
Else
$search_point2=PixelGetColor($search_point1[0]+($pix_X2-$pix_X1), $search_point1[1]+($pix_Y2-$pix_Y1))
;MsgBox(1,"", $search_point2)
Select
Case $search_point2=$point2
MsgBox(1,"", $search_point1[0])
Return $search_point1
Case $search_point2<>$point2
$top_search=$top_search+1
Do
$search_point1=PixelSearch($left_search, $top_search, $left_search, 705, $point1, 10); продолжает искать в столбце пикселей на 1 пиксель ниже
If Not @error Then
$search_point2=PixelGetColor($search_point1[0]+($pix_X2-$pix_X1), $search_point1[1]+($pix_Y2-$pix_Y1))
If $search_point2=$point2 Then
MsgBox(1,"", $search_point1[0])
Return $search_point1
Else
$top_search=$top_search+1 ;если пиксель найден и $search_point2<>point2
EndIf
Else
$search_point1=1 ;если пиксель не найден
EndIf
Until $top_search=704 Or $search_point1=1
$left_search=$left_search+1
EndSelect
EndIf
WEnd
EndFunc
Func _Exit()
Exit
EndFunc