매크로

조회 수 1215 추천 0 댓글 9

저는 이미지 서치보다 pixelGetColor를 많이 사용하는데요


요즘은 예쁜이미지, 투명이미지가 많아서 color값이 일정하지않고 일정 범위내에서 변하는 경우가 많이 있어요


pixelGetColor의 경우 색깔값이 RGB로 나눠서 나오기때문에 


오차범위 선정이 조금 까다로운 면이 있는데요


이러한 문제는 10진수를 사용하면 매우간단해집니다


검정색 = 0 흰색은 16777215값인데


이렇게되면 색값이 연속성이 생기게 되고


함수값을 특정 범위로 만들수가 있게 됩니다.


예를들어 붉은색 체력게이지바의 범위색이 일정하진 않더라도 1920~2200값을 유지하는거죠


이런 방법으로 리니지m의 체력바를 체크할수 있습니다


10진수로 변경하는 함수는 다음과 같습니다


;10진수 픽셀 체크


checkPixelDecimal(a,b){

pixelgetcolor, varPixel, a, b

SetFormat, IntegerFast, d

decimalCode := varPixel

decimalCode += 0

return decimalCode

}


이러면 RGB값이 아닌 정수값이 나와서 비교하기가 쉽습니다.


특정위치의 최대값과 최소값을 일일히 체크하기가 어렵고 범위를 넉넉하게 주기가 어려운데


이걸 따로 찾아내는 매크로도 따로 만들어 보았습니다


===========================================================


Gui, Add, ComboBox, x-8 y-67 w140 h106 , ComboBox

Gui, Add, Text, x10 y22 w30 h20 , X값

Gui, Add, Edit, x55 y19 w40 h20 vposX , 114

Gui, Add, Text, x140 y22 w30 h20 , Y값

Gui, Add, Edit, x185 y19 w40 h20 vposY, 92

Gui, Add, Text, x140 y52 w50 h20 , 최대값

Gui, Add, Edit, x185 y49 w70 h20 vcodeMax , 0

Gui, Add, Text, x10 y52 w50 h20 , 최소값

Gui, Add, Edit, x55 y49 w70 h20 vcodeMin, 0

Gui, Add, Button, x20 y120 w100 h30 , 체크

Gui, Add, Button, x125 y120 w100 h30 , 종료

gui, add, text, x30 y90 w100 h30 vshowCode, 0

; Generated using SmartGUI Creator 4.0

Gui, Show, x1090 y487 h170 w294, New GUI Window

Return


GuiClose:

ExitApp


stateNow := false


pixelMax := 0

pixelMin := 0


varPixel :=0


f3::

{

stateNow := false

}

return


button종료:

{

ExitApp

}

return


changecodeDecimal(a){

SetFormat, IntegerFast, d

decimalCode := a

decimalCode += 0

return decimalCode

}






button체크:

{

stateNow := true

gui submit, nohide

WinActivate, 프로그램타이틀

MouseMove, posX, posY

pixelgetcolor, varPixel, posX, posY

varPixel := changecodeDecimal(varPixel)

guiControl, ,codeMax, %varPixel%

guiControl, ,codeMin, %varPixel%

codeMinvar := varPixel

codeMaxvar := varPixel

Loop 

{

WinActivate, 프로그램타이틀 

MouseMove, posX, posY

pixelgetcolor, varPixel, posX, posY

varPixel := changecodeDecimal(varPixel)

if(varPixel > codeMaxvar)

{

guiControl, ,codeMax, %varPixel%

codeMaxvar := varPixel

}

if(varPixel < codeMinvar)

{

guiControl, ,codeMin, %varPixel%

codeMinvar := varPixel

}

guiControl, ,showCode, %varPixel%

if(stateNow = false){

break  

}

sleep, 200

}

}

return

===========================================================


허접합니다만

이걸이용하면 특정포인트의 pixelcolor값이 10진수로 어떻게 변화는지 체크할수 있습니다

그럼

      a := checkPixelDecimal(415,188)

if(a> 13500000 && a <13700000){

mouseClick, left, 392, 335,1,0

sleep, 200

}

이런식으로 정확한 값이 아니더라도 확인할수 있습니다


눈팅덧글로만 봤지만 할것엄따구님 댓글이 매우 도움이 많이되어서 이글을 빌어 감사의 인사를 전합니다


pixelgetcolor도 이렇게 사용하시면 의외로 많이 편하니 자주 이용해보세요^^ 감사합니다


  • 개발자의하루 2017.08.22 23:57

    오오 꽤 유용할거같습니다. 감사합니당

  • 할거엄따구 2017.08.23 00:45

    괜찮은 방법이네요~ 테스트해봐야겠어요 ㅎㅎ

  • 할거엄따구 2017.08.23 01:27

    R값이낮은 픽셀에서는 오감지가 좀 있는거 같네요.

  • 갈리토스 2017.08.23 12:23
    오오 할거엄따구님이 댓글달아주시다니 감사합니다! 분석도 해주시고 영광이에요 보통범위를 실측해서 정해서 큰 오차범위가 안생기던데 R값은 한번 고민해봐야겠네요 감사합니다^^ 모모비활성클릭 매우 잘쓰고있어요 감사해요~~^^
  • 할거엄따구 2017.08.23 12:46
    저도 초보인데 부끄럽게 왜그러세요ㅎㅎ;
    위에 pixel값을 decimal로 변환하신게 어차피 pixel값 FFFFFF 이렇게 된거를 10진수로 변환한거라, R값 1차이에 대한 오차 범위가 뒤에 G, B값의 오차범위를 넘어서서 그런거 같아요.
    R값이 1이라도 변하는 pixel이라면 G , B 값이 0~255까지 변하더라도 다 포함시켜버리니......
    G, B값에 대한 조건 안주고 R값만 조건 주고 판단하는거랑 별 차이가 없게 되는거죠..실제로 테스트해보니 리니지m 피통이 순간순간 요동치는 경우가 있더라구요.
    FF0000과 FEFFFF의 decimal값 차이는 1이기 때문에 전혀 다른 색을 검출할가능성이 생기는거죠...

    참고)
    R값 1변할때 차이 값 = 65536
    G값 1변할때 차이 값 = 256
    B값 1변할때 차이 값 = 1
  • jason 2017.11.19 07:08
    1x1 픽셀 크기의 bmp 파일로 이미지 서치를 하면서 오차값을 주면 어떨까요
  • 도우넛 2017.12.28 01:13

    좋은 정보 공유해주셔서 감사합니다~

  • hihi88 2021.01.23 23:12

    많이 도움이 됐습니다. 감사합니다.

  • 비듀맨 2022.07.21 11:32
    진짜 말도 안 되는 꿀정보네요 감사합니다!

List of Articles
분류 제목 글쓴이 최근변경 추천
정보 아르테일 매랜 로나 핵 매크로 취급합니다 얼리언 2024.01.05 0/0
정보 오토핫키 인터넷 연결 확인 함수 뒷산아저씨 2023.02.10 0/0
정보 title 이 없는 프로세스 id 값 따기 압살맨블로그 2022.12.14 0/0
정보 하나의 지정 픽셀로 마우스를 고정 압살맨블로그 2022.12.14 0/0
정보 압살맨 플레이어를 활용하여 비활성 이미지서치 압살맨블로그 2022.09.01 0/0
정보 AHK_Helper.exe 오토핫키 도움말 프로그램 입니다. 2 월드걸스 2023.02.24 0/0
정보 메이플매크로 보여중인데 3 검ㅇ응사막 2022.02.05 0/0
정보 Gdip_all.ahk를 이용한 Bitmap의 size 변경 함수 6 할거엄따구 2022.12.14 1/0
정보 SciTE4AutoHotkey 프로그램 2개 실행하기 1 치우지 2019.09.25 0/0
정보 같은 이미지라도 색상이 조금 달라서, 육안으로 구분이... 5 파이썬공부중 2019.11.17 0/0
정보 이미지서치시 좌표 관리시 소소한 팁. 1 파이썬공부중 2019.06.30 0/0
정보 오토핫키 if 기본부분인데 이해가 안돼서 도와주세요! 4 slka 2018.10.16 0/0
정보 현재 사용하고 있는 PC 공인 IP 조회하기 2 저녁말고전역 2018.04.20 0/0
정보 핫키 하나로 온오프 하기 2 저녁말고전역 2022.07.21 0/0
정보 푸시불렛자료-스마트폰으로 매크로에 명령하달입니다. 2 단백질 2019.03.06 0/0
정보 비활성 이미지 서치.. 최소화 꼼수 2 블랙보노 2018.10.16 0/0
정보 gdip 비활성 이미지 서치, postmessage 모모 소스입니다. 6 사이다업 2021.01.23 1/0
정보 ListBox로 로그창을 만들어보자! 고음l 2017.11.18 1/0
정보 pixelGetColor 오차범위 만들기(10진수변환) 9 갈리토스 2022.07.21 0/0
정보 ControlSend 명령을 이용한, 카톡으로 알림받기 간단하... 10 죠케빈 2018.01.02 0/0
Board Pagination Prev 1 23456 7 Next
/ 7

전체 최신 인기글

전체 주간 인기글