FindImg(imgName)
{
StartPosX = 17
StartPosY = 770
EndPosX = 507
EndPosY = 1015
TempPosX = 0
TempPosY = 0
ImageSearch, outPosX, outPosY, StartPosX, StartPosY, EndPosX, EndPosY, *140 %A_ScriptDir%\Image\%imgName%
if(ErrorLevel = 0)
{
outPosX += 5
TempPosX = %outPosX%
TempPosY = %outPosY%
NUMBER:=1
splashimage, %NUMBER%: ,b X%outPosX% Y%outPosY% W50 H50 CW000000
Sleep, 50
}
else
{
;MsgBox, fail1 %imgName%
return false
}
ImageSearch, outPosX, outPosY, StartPosX, StartPosY, EndPosX, EndPosY, *140 %A_ScriptDir%\Image\%imgName%
if(ErrorLevel = 0)
{
outPosX += 5
NUMBER:=1
splashimage, %NUMBER%: ,b X%outPosX% Y%outPosY% W30 H30 CW111111
MouseClickDrag, left, TempPosX, TempPosY, outPosX, outPosY ;Draging
}
else
{
;MsgBox, Failed2
return false
}
return true
}
특정한 이미지를 찾고 같은모양의 이미지를 하나 더 찾아서 첫번째 찾은 위치에서 두번째 찾은 위치로 드래그하는 함수인데요
몇가지 이미지들이 서치범위내의 위치에 따라 검색이 안되는 경우가 있어서요 비슷한 경우를 겪어보셨거나 해결해보신분 계신가요?
같은 이미지라도 위치에 따라 픽셀값이 약간씩 달라지는 경우가 있습니다.
검출 잘되는 위치와 안되는 위치의 이미지 각각 캡쳐하셔서 확대 비교해보시면 무슨 얘긴지 알수 있을 겁니다.
보통 배경과 찾고자하는 이미지의 경계부분이 주로 문제인데,
첫번째 방법은 경계와 배경부분을 특정색(검정색이나 흰색 등)으로 수정해주시고 transcolor로 해결하는 방법도 있습니다.
두번째 방법은 해당 이미지를 위치별로 따로 캡쳐해서 이미지1,이미지2 등으로 가지고 있다가 이미지 서치시
if (이미지서치(이미지1) || 이미지서치(이미지2)) 같이 조건을 줘서 이미지1이든 이미지2든 둘중하나가 검출되면 원하는 스크립트를 실행하는 방식으로 하는 방법이 있습니다.