매크로

질문
2016.03.17 00:54

Gdip문의

조회 수 989 추천 0 댓글 4

Gdip를 이용해서

이미지를 찾는 것 까진 잘 됐습니다.

그런데 Gdip특성상 찾든 못찾든 찾았다고 뜨기 때문에

1을 찾을때까지 기다렸뎌서 2로 넘어가라로 만들고 싶은데

좋은 방버버 없을까요?


  • profile
    모노레인 2016.03.17 10:38

    GDIP 에서 이미지 서치 쓰면 결과 넘어올텐데요..?

  • fnwj 2016.03.17 11:47
    찾든 못찾든 결과값이 찾았다고 나와서 그걸 어떻게 해야할지 고민중이라서요...
  • profile
    모노레인 2016.03.17 11:51
    공개된 이미지 서치 함수에 보면 못 찾았을 경우 결과가 마이너스 값이 나오던데요?
  • 슉슉이 2016.03.17 20:25
    Gdip라이브러리 안에 있는 이미지서치함수 보니 찾을 때만 값을 반환하네요. 검색범위, 찾는 수, 투명도, 색값오차 등을 지정하면 몇개 찾았는지 값을 반환. 1개만 찾게하면 1개 이상 일치하는 이미지가 있으면 카운트을 1만 반환하고 필요시 좌표도 받을 수 있게 되어있네요.

    맨아래 라이브러리안의 이미지서치 함수 그대로 가져왔습니다. 맨마지막줄 보면 카운트한 수를 반환합니다. 즉 매칭되는 이미지가 없으면 절대 1이 나올 수 없죠.

    이런식으로 하심 될듯합니다.
    gdipToken := Gdip_Startup()
    스샷비트맵:= Gdip_CreateBitmapFromFile("스샷.png")
    찾을이미지비트맵 := Gdip_CreateBitmapFromFile("찾을이미지.png")
    매칭이미지수 := Gdip_ImageSearch(스샷비트맵,찾을이미지비트맵,,0,0,0,0,,,1,1)
    Gdip_DisposeImage(스샷비트맵)
    Gdip_DisposeImage(찾을이미지비트맵)
    Gdip_Shutdown(gdipToken)

    if (매칭이미지수 = 1)
    {
    msgbox, 매칭
    }
    else
    {
    msgbox, 비매칭
    }

    Gdip_ImageSearch(pBitmapHaystack,pBitmapNeedle,ByRef OutputList=""
    ,OuterX1=0,OuterY1=0,OuterX2=0,OuterY2=0,Variation=0,Trans=""
    ,SearchDirection=1,Instances=1,LineDelim="`n",CoordDelim=",") {
    If !( pBitmapHaystack && pBitmapNeedle )
    Return -1001
    If Variation not between 0 and 255
    return -1002
    If ( ( OuterX1 < 0 ) || ( OuterY1 < 0 ) )
    return -1003
    If SearchDirection not between 1 and 8
    SearchDirection := 1
    If ( Instances < 0 )
    Instances := 0
    Gdip_GetImageDimensions(pBitmapHaystack,hWidth,hHeight)
    If Gdip_LockBits(pBitmapHaystack,0,0,hWidth,hHeight,hStride,hScan,hBitmapData,1)
    OR !(hWidth := NumGet(hBitmapData,0))
    OR !(hHeight := NumGet(hBitmapData,4))
    Return -1004
    Gdip_GetImageDimensions(pBitmapNeedle,nWidth,nHeight)
    If Trans between 0 and 0xFFFFFF
    {
    pOriginalBmpNeedle := pBitmapNeedle
    pBitmapNeedle := Gdip_CloneBitmapArea(pOriginalBmpNeedle,0,0,nWidth,nHeight)
    Gdip_SetBitmapTransColor(pBitmapNeedle,Trans)
    DumpCurrentNeedle := true
    }
    If Gdip_LockBits(pBitmapNeedle,0,0,nWidth,nHeight,nStride,nScan,nBitmapData)
    OR !(nWidth := NumGet(nBitmapData,0))
    OR !(nHeight := NumGet(nBitmapData,4))
    {
    If ( DumpCurrentNeedle )
    Gdip_DisposeImage(pBitmapNeedle)
    Gdip_UnlockBits(pBitmapHaystack,hBitmapData)
    Return -1005
    }
    OuterX2 := ( !OuterX2 ? hWidth-nWidth+1 : OuterX2-nWidth+1 )
    OuterY2 := ( !OuterY2 ? hHeight-nHeight+1 : OuterY2-nHeight+1 )
    OutputCount := Gdip_MultiLockedBitsSearch(hStride,hScan,hWidth,hHeight
    ,nStride,nScan,nWidth,nHeight,OutputList,OuterX1,OuterY1,OuterX2,OuterY2
    ,Variation,SearchDirection,Instances,LineDelim,CoordDelim)
    Gdip_UnlockBits(pBitmapHaystack,hBitmapData)
    Gdip_UnlockBits(pBitmapNeedle,nBitmapData)
    If ( DumpCurrentNeedle )
    Gdip_DisposeImage(pBitmapNeedle)
    Return OutputCount
    }

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 블루스택2 비활성 이미지서치 질문드립니다.. GDIP 2 bellms 2016.04.04 0/0
질문 postmessage 질문드립니다. 이미지 6 jh91 2016.03.30 0/0
질문 윈드로이 멀티 할때요 ~~ 제발등업좀2 2016.03.30 0/0
정보 외치기님 푸쉬블렛 .. 시간 보내기 (누군가 질문던지신... 2 제발등업좀2 2016.03.30 1/0
질문 함수 이미지서치 투명!!베스트글 모바게님의 함수 질문... 2 혜띠뿌뿌 2016.03.29 0/0
질문 오토핫키 멀티 질문이요! 5 니기리리링 2016.03.30 0/0
질문 미뮤는 포스트메시지 윈무드 같은거 안먹나요? 10 로우얄 2016.03.30 0/0
질문 Gdip_ImageSearch 이미지 차이 질문 2 fnwj 2016.03.26 0/0
질문 오토핫키로 F1,F2 같은 키도 누르게 할 수 있나요?? 3 메루루루 2016.03.29 0/0
자유 녹스 비활성화 붙여넣기 postmessage 1 띨빵큐라 2016.03.29 0/0
자유 COM_L.ahk 라이브러리 가지고 계신분 계신가요? 1 Hangoon 2018.01.29 0/0
질문 불규칙적으로 움직이는 이미지 파일 가리는방법이 있을... 1 개멍멍멍 2016.03.20 0/0
질문 이미지 서치 도움좀 부탁드립니다. 13 뎅뎅 2019.08.17 0/0
질문 Gdip문의 4 fnwj 2016.03.17 0/0
질문 비활성 문자입력&붙여넣기 질문드려요 1 띨빵큐라 2016.03.29 0/0
질문 adb서치 질문 1 fnwj 2016.03.16 0/0
질문 화면에 웹브라우져 여러개 띄우고 각각 다른 프록시를 ... 1 오켕 2016.03.29 0/0
자유 블택2 비활성클릭 성공하신분 잇으신가요 .. 4 미천성 2016.03.30 0/0
질문 숫자이미지를 ocr로 안되는데 혹 다른 방법 있을까용?? 2 오켕 2016.03.13 0/0
질문 이미지 비교 질문 2 풍운대사 2016.03.11 0/0
Board Pagination Prev 1 ... 124125126127128129130131132 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글