녹스안에서 비활성 이미지서치를 하려고 하는중입니다.
커뮤니티 검색해본 결과 녹스에서 사용하는 비활성이미지 서치에는 gdip 와 adb 방식이 있는것으로 가늠되고,
제가 대충 이해한것으로는 gdpi는 PC에서의 xy위치정보를 이용하는것같고, ABD는 녹스 안에서의 xy위치정보를 이용하는것으로 예상되는데요. (정확치 않습니다. 맞나요..? 이게..?)
abd 그리고 gdip에 관련한 강좌나 자세한 설명이 있는 글은 어떤게 있을까요? 아무리 찾아도 못찼겠습니다.ㅠㅠ
어떤게 더 좋은방식인지는 잘 모르겠으나, 일단 구현이 쉬운쪽으로 가닥을 잡아서 공부하려고 합니다.
녹스의 고급설정에서 그래픽모드를 스피드모드(DirectX) 와 호환모드(OpenGL) 을 만져야 하는것 같던데...
스피드모드와 호환모드를 사용하는것으로 adb와 gdip 사용용도가 나뉘는건가요?
어느 글을 읽다보니 스피드모드로 하시는게 있더라구요. 그래서 저도 스피드모드로 하니까 아래와 같이 그래픽이 뭉그래집니다.
하나는 pc에서 캡춰한 화면이고, 하나는 녹스에서 캡춰한 화면입니다.
1번, 스피드모드중 pc에서 녹스의 화면을 캡춰한 하트 2번, 스피드모드중 녹스 자체적으로 캡춰한 하트
1번을 사용하는 경우, 스크롤이 올라갈때마다 저 픽셀이 깨지는 위치가 달라지게 되니... 이미지 서치가 제대로 작동하지 않을것 같은 예감이고, 2번의 경우에는 실제 모니터에 표현되는 이미지가 아니다보니, 저것도 이미지 서치가 안될것 같은 예감이 들어서.. 내가 과연 맞게 하고 있는건가? 하는 생각도 들곤 합니다.
벌써 2일째 잡고 있는데... 단 한번도 녹스 내부로 비활성클릭이 먹힌적이 없네요.
제가 제대로 방향을 잡고 하고있는건지.. 아닌지도 모르겠습니다.
그냥 해답이 아니더라도.. 아무말이나 조언좀 부탁드립니다.
gdip랑 adb 서칭방식은 앱플레이어의 화면을 가져오는데서 차이가 있는데요
gdip는 타이틀의 현재 화면을 바로 가져와서 경로에있는 이미지파일과 비교하는반면
adb는 녹스 내장 캡쳐를 사용하여 현재화면을 디바이스에 저장하고 그걸 다시 빼와서 컴퓨터에 저장하고 저장된 이미지파일을 경로에있는 이미지파일과 비교를 합니다
속도는 당연히 Gdip로 바로 화면을 가져오는게 빠릅니다, adb는 너무 우회하는 방식이라 공부용으로는 녹스 스피드모드인 상태에서 Gdip만 사용해서 이미지를 비교하는 방식을 추천드립니다.
일단 이미지 비교가 되면 메세지박스를 띄워서 확인해보시고요, 비활성클릭은 엄청쉬운데 조금만 검색하셔도 많이 나올것같아서 예제는 따로안올리는걸로..