본문 바로가기

오토핫키/오토핫키 강좌

오토핫키 4강 :: 이미지서치가 뭐야?

오토핫키 4강 :: 이미지서치가 뭐야? 씹어먹는거야?
벌써 오토핫키에 대한 강좌를 4강이나 진행하게 되었습니다.
사실 아직 얼마나 많은 분들이 이러한 글을 읽으시는지 알 수 없으나
어떤분에게든 조그마한 보템이 될까하는 마음으로 강좌를 써내려 갑니다.

오토핫키의 입문에서 기본으로 넘어가는 과정에서 이미지서치는 매우 중요하다 감히 말할 수 있습니다.
무언갈 응용해보려면 이미지서치라는 녀석이 상당히 중요해지거든요.

그렇다면 아직 이해가 안가는 이미지 서치라는 녀석에게 다가가기 전에 혹여 전강의를 안보신 분들을 위해서 링크를 남겨봅니다.
지난강의



본격적으로 시작해볼까요?

이미지서치를 이용해보자!


명령문 : ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
A라는 모양의 이미지를 어떠한 화면에서 찾고 싶을때 사용하는 명령문이죠.
먼저 명령문을 분석해 보겠습니다.
ImageSearch(이미지를 찾으라는 명령어죠)
OutputVarX or Y라는 것은 찾은 이미지의 좌표값을 도출해내기 위한 변수 값입니다.
따라서 저는 주로 이부분에 vX,vY라고 적습니다.
X1,Y1,X2,Y2는 검색할 범위 입니다. 현재는 모니터를 기준이 중점이 되겠죠?
모니터를 기준으로 1,1,1024,768 이라면 왼쪽제일 끝 1이라는 픽셀에서 부터 1024,768이라는 좌표까지 검색하겠단 소리겠네요.
만약 모니터 전체를 기준으로 하고 싶으시다면 1,1, A_ScreenWidth, A_ScreenHeight 라고 적으시면 됩니다.

ImageFile은 이제 이미지를 검색할 파일입니다. A라는 모양의 이미지가 a.jpg라면 이부분에 a.jpg라고 적으시면 됩니다.
물론 이럴경우! 이미지랑 스크립트가 같은 폴더내에 있어야겠죠?
이미지 파일부분의 옵션은 다음과 같습니다. 1. *(숫자) 예를 들어 범주 값입니다. 검색하고자 하는 이미지와 아주 닮았으면 좋겠지만, 스크린샷등의 이미지 카피나 창에서 이미지 도출은 오차값을 생성하게 됩니다. 그래서 오차값만큼의 숫자를 임의적으로 주게되는 것이죠.

ImageSearch,vX,vY,1,1, A_ScreenWidth, A_ScreenHeight,*50 a.jpg 라고 쓰게 되겠네요.
숫자가 크면 클 수록 오차값이 커지기 때문에 엉뚱한 이미지가 검색이 되거나 이미지 검색속도가 늦어질 수 있어요. 또한 검색하고자 하는 이미지가 작을 수록 효과는 빠르다는 사실~

자! 이제는 실전입니다. 실전스크립트 날려드려요~

end::exitapp

Insert::reload

Home::


loop
{
imagesearch,vX,vY,1,1,100,100,*10 a.bmp ; 1,1좌표에서 100,100좌표까지 a.bmp를 10만큼의 오차값으로 검색한다.
if errorlevel = 0 ; 이미지를 찾았을 때 라는 조건문입니다. if를 통해서 조건문을 제시하고 errorlevel = 0 어떠한 명령어에대한 결과 값이 있을 때를 의미하죠.
{
msgbox,찾았다
sleep,1000
break ; loop문을 반복에서 멈추게 할때 사용합니다.
}
else or if errorlevel = 1 ; 이것은 else 찾지 않은 나머지의 경우 , errorlevel = 1 결과 값이 없을 때
{
msgbox, 못찾았다
sleep,1000
}
}
return 


위와 같은 스크립트는 이미지를 찾을 때까지 계속 이미지서치를 수행하다가 이미지를 찾으면 멈추는 스크립트입니다.
여기까지 손쉽게 따라오셨길 바랍니다. 이상으로 4강 이미지서치를 마치겠습니다.
언제나 당부드리지만 댓글은 힘입니다. 필요하실 때 어제든 댓글주시면 도움이 되어드릴게요.