[Autohotkey][14-외전] 오토핫키 완벽분해 - PixelGetColor

Posted by 아이티프로13
2019. 4. 16. 01:23 프로그래밍/AutohotKey




안녕하세요. 쿠과자입니다.

저번 시간에 PixelSearch, 픽셀 서치에 대해서 알아봤었죠?

2019/04/15 - [프로그래밍/AutohotKey] - [Autohotkey][14] 오토핫키 완벽분해 강좌 - PixelSearch 픽셀서치

여기에서 PixelGetColor 를 살짝 언급했었는데, 이에 대해서 추가적인 설명을 해드리면 좋겠다 싶어

외전으로 따로 글을 쓰게 되었습니다.


색상 코드를 가져오는 PixelGetColor


PixelGetColor는 말 그대로 특정 좌표의 색상 코드를 가져오는 코드입니다.


PixelGetColor, OutputVar, X, Y , Mode


OutputVar의 경우 색상 코드를 내보내는 변수며,

X, Y는 색상 코드를 찾을 X,Y좌표

Mode의 경우 RGB를 적으면 RGB모드로(픽셀서치 참고) Alt나 Slow를 적으면 다른 방법으로 PixelGetColor를 진행합니다(참고로 둘다 적으면 안됩니다.)


F6::

MouseGetpos,ax,ay

mousemove,0,0

PixelGetColor, OutputVar, ax, ay

msgbox,%OutputVar%

return



예문입니다.

MouseGetPos는 마우스 위치를 뒤의 변수에 저장하는 명령어인데.. 아무튼 생략하고

여기에서 Mousemove, 0, 0을 해준 이유는 뭘까요?

바로 그 위치에서 바로 PixelGetColor를 하게 되면 마우스의 픽셀이 잡히기 때문입니다.

그렇기 때문에 픽셀겟컬러가 제대로 안되기 때문에, 위치를 변수에 담아둔 후 마우스 위치를 변경해 겟컬러를 하는 방식으로 사용하곤 합니다.



PixelSearch 대신 PixelGetColor 사용하기


픽셀겟컬러도 결국 픽셀의 색상값을 가져오기 때문에

if문을 사용하면 PixelSearch 대용으로 사용이 가능합니다.


F6::

MouseGetpos,ax,ay

mousemove,0,0

PixelGetColor, OutputVar, ax, ay

if(Outputvar = 0xE4E4E4)

{

    msgbox,Found! %OutputVar%

}

return




위와 같이 픽셀겟컬러를 한 이후에, Hex값(0x어쩌고저쩌고) 끼리 비교를 하게 되면

정상적으로 픽셀서치 대용으로 사용이 가능합니다.


이 경우에는 오직 단 한군데에서 단 한점의 완벽한 픽셀의 색을 검사하기 때문에

아무래도 픽셀서치보다 속도도 빠르고 정밀하게 검사가 가능합니다.


상황에 따라서 잘 사용해 보시길 바랍니다.


참고

https://autohotkey.com/docs/commands/PixelGetColor.htm





공감 버튼을 눌러주시면

블로거에게 힘이 됩니다!