;현재 영역 캡춰 후 이미지리스트에 추가 F1:: WinGetPos, x,y,w,h, ahk_id %hwndBorder% ImageGet, hBitmap, x+1,y+1,w-2,h-2,, *WH ImageList, Add, hImageList, hBitmap ;hBitmap 핸들은 ImageList 명령어 사용 후 초기화 됩니다. sleep, 300
return
;이미지리스트 파일로 저장 후 스크립트 종료 F2:: if hImageList { SaveHBITMAPToFile(hImageList, imgListFile := "캡춰이미지리스트.bmp") DllCall("DeleteObject", Ptr,hImageList) hImageList = MsgBox, 캡춰한 이미지리스트를 %imgListFile%에 저장했습니다. } ExitApp return
ZipToVar 과 UnzipToVar 명령어는 입력변수의 데이터를 zip 포맷으로 압축하거나 zip 포맷의 압축데이터에서 특정데이터를 추출하는 명령어입니다. 이 명령어를 추가한 이유는 스마트집 같은 간편한 압축관련 스크립트가 있지만 파일을 거치지 않고 메모리에서 압축하거나 압축해제해서 쓸 수 있는 필요성이 생겨서입니다.
이 명령어를 추가하는데 사용한 zip unzip c++ 소스의 출처입니다. 많은 감사를 표합니다.
[결과값] ErrorLevel = 0 : 압축해제 성공 ErrorLevel = 1 : 소스데이터가 존재하지 않거나 ClipBoard 변수가 지정된 경우 ErrorLevel = 2 : 압축데이터 열기 실패(또는 패스워드 오류) ErrorLevel = 3 : 압축데이터 내에서 'insideName' 식별명을 가진 데이터 찾기 실패 ErrorLevel = 4 : 압축해제 실패
[변수]
insideName : 압축데이터에서 해제할 데이터의 식별명(압축파일내의 파일이름)
password : 패스워드
[주의]
해결되지 않은 문제점이 있습니다. 50바이트 내의 특정 데이터를 압축한 경우 압축 해제시에 오류가 발생하는 경우가 있습니다. 원인을 찾는데 시간이 걸릴것 같습니다.
F1:: imageFile = sample.bmp FileRead, srcData, *c %imageFile% ;*c 옵션은 파일을 그대로 읽어오는 옵션 FileGetSize, srcSize, %imageFile% ;이미지 데이터를 압축 ZipToVar, zipData, zipSize, srcData, srcSize, abcd.bmp ;이진데이터를 BASE64 문자열 변환 BinToHex, base64Str, zipData, zipSize, *Base64 ;텍스트 파일로 저장 FileAppend, % base64Str, sample_base64.txt MsgBox, 압축이미지데이터를 BASE64 문자열로 변환 후 텍스트 파일로 저장완료! return
F2:: ;F1 키를 눌러 만들어진 BASE64 문자열 텍스트파일 내용을 복사해서 붙여넣었습니다. imageData = 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
[결과값] ErrorLeve = 0 : 이미지리스트 중 검색 성공한 파트이미지 있음 ErrorLeve = 1 : 이미지리스트의 모든 파트이미지 검색값 없음 ErrorLeve = 2 : 이미지리스트 소스 오류, 파일이 존재하지 않거나 HBITMAP 핸들값이 유효하지 않을시 발생 ErrorLeve = 3 : 이미지리스트 상태 오류, *ListMaxNN *SelectN1:N2 값이 잘못 입력되도 이 오류 발생
[변수] OutputVarX, OutputVarY : 검색성공시 이미지 좌표 OutVarIndex : 이미지리스트에서 검색성공한 인덱스번호 (인덱스번호는 0부터 시작) X1, Y1, X2, Y2 : 검색할 영역 (X2,Y2 값은 *WH옵션으로 사이즈값으로 대체가능)
[옵션] *ListmaxNN : NN값은 이미지리스트상의 파트이미지 총개수
*UseZeroIndex : 이미지리스트의 시작인덱스를 1이 아닌 0을 사용 *WH : X2,Y2값을 가로 및 세로 사이즈 값으로 사용 *n(variantion) : 이미지서치 공차값 0~255 사이의 숫자 *Scan(RB|BR|LT|TL|RT|TR|LB|BL) : 스캔방향 설정 (기본스캔방향은 RB)
- Scan 옵션에 대한 세부설명은 '이미지서치' 명령어항목에서 확인하세요. *Result(LT|LB|RT|RB|Center|Random) : 검색결과 좌표값 설정 (기본값 LT)
- Result 옵션에 대한 세부설명은 '이미지서치' 명령어항목에서 확인하세요. *TransN : 투명컬러값 지정, N값은 컬러명 또는 RGB 값 (ex. *TransBlack, *TransWhite, *Trans0xFFFFAA) *TransnotN : 투명컬러영역에 없어야할 컬러명 또는 RGB 값 (ex. *TransnotWhite, *Transnot0xFFFFFF) *HBmp : 'ImageListFile' 입력 부분에 "HBITMAP" 핸들값을 사용 (사용된 핸들은 자동소멸) *HBmpNotDel : *HBmp 옵션과 같은 기능이지만 사용된 핸들이 그대로 유지된다. - 이 옵션 사용시 추후에 핸들값 초기화 필요 (ex. DllCall("DeleteObject", Ptr,hBitmap)) *Obj : 출력변수 'OutVarIndex' 를 출력오브젝트 변수로 사용
*All , *Allnn : 동일이미지를 검색영역에서 모두 검색되며 검색된 모든 좌표값은 OutputVarObj 변수를 통해 배열로 반환됨, Allnn인 경우는 해당 nn 개수 까지만 검색 *Valid(W|H)|(L|T|R|B) : *TransN 옵션 사용시에만 유효하며, 파트이미지의 외곽 투명영역을 최대한 배제시킴 - (W|H) : 파트이미지의 가로 또는 세로 축에서 *Valid 옵션처리할 방향 선택 (WH 모두 사용 가능) - (L|T|R|B) : 유효이미지의 외곽에 투명컬러영역을 1픽셀단위로 확장할때 사용 (LTRB 모두 사용시 상하좌우 모두 1픽셀단위 확장) - ex) *ValidW, *ValidWH, *ValidWLR *SelectN1:N2 : 이미지리스트중 선택된블럭만 사용할때 사용 (N1 = 시작 파트이미지 인덱스, N2 = 시작인덱스부터 사용할 파트이미지 수) *Fix(W|H) : 검색시작좌표기준으로 검색대상영역을 이미지리스트의 각 파트이미지 크기로 고정 (W: 가로크기고정, H: 세로크기고정, WH: 가로세로모두고정) *Target(File|HBmp|HBmpNotDel)xx : 이미지서치 대상을 화면이 아닌 파일이나 HBITMAP 핸들로 사용 - 검색대상이 파일일때 < > 기호로 파일경로를 둘러싸 줄것 : *TargetFile<filePath>
*FilterGray : 대상화면(이미지)의 검색영역 및 검색소스 이미지를 회색톤 이미지로 교체 후 이미지서치를 수행합니다. (추가:151207)
*FIlterMono : 모든 이미지를 흑색과 백색으로만 구성된 모노톤 이미지로 교체 후 이미지서치를 수행합니다. (백색 교체값은 Variation 범위 내의 컬러이며 그외 값은 흑색으로 교체됩니다.) (추가:151212)
[ OutVarIndex ] - *Obj 옵션일때 *All 옵션 관련 출력값은 아래와 같다.
*All 옵션 있을때 오브젝트변수가 있는 경우 오브젝트 리스트에 저장되는 값
- Object{w, h, count, [number]{x, y} }
(validox 및 validoy 값은 유효영역 오프셋값)
*Valid 옵션에 대한 세부설명
*Valid 옵션은 W|H 선두옵션과 L|T|R|B 후미옵션으로 나뉘어져 있습니다.
옵션에 사용된 각 문자는 Width Height , Left Top Right Bottom 의 앞 글자입니다.
후미옵션은 방향에 맞게 선두 옵션에 종속됩니다.
선두가 W 라면 후미는 L|R 만 유효하고 선두가 H 라면 후미는 T|B 만 유효합니다.
선두를 WH 둘다 사용하면 후미도 LTRB 모두 사용가능합니다.
예를 들어 가로 세로 15x16 픽셀의 파트이미지들로 이루어진 이미지리스트가 있고 *TransWhite 옵션으로 흰색 배경을 투명처리 한 상태로 검색대상 영역에서 이미지서치 한다고 했을때...
*Valid 옵션이 없다면 15x16픽셀 전체를 검색대상 영역에서 찾게 됩니다. 이는 검색대상 영역에 Red 컬러의 '가' 글자가 있더라도 그 크기가 15x16 보다 작다면 '가' 파트이미지 부분은 검색 실패 처리되고 이미지리스트의 다음 파트이미지 검색으로 넘어가게 됩니다.
*ValidWH 옵션이 있다면 15x16픽셀중 *TransWhite 영역을 배제한 노란색으로 둘러쌓인 가로 세로 9x10 부분의 실제 글자 '가' 이미지만을 검색대상 영역에서 찾게 됩니다. 위에 *Valid 옵션이 없었을때 처럼 검색대상 영역이 15x16픽셀보다 작더라도 실제 Red 컬러의 '가' 이미지만 있다면 이미지서치 성공으로 처리되는 것입니다.
*ValidW 옵션 이라면 15x16픽셀 중 가로영역만 유효픽셀 설정되므로 실제 검색에 사용되는 픽셀은 가로 세로 9x16 픽셀입니다.
*ValidH 옵션 이라면 실제 검색에 사용되는 유효픽셀은 가로 세로 15x10 픽셀이 됩니다.
*ValidWH 이후에 붙는 L|T|R|B 옵션은 유효영역을 1픽셀 단위로 각 방향으로 확장시켜줍니다.
왼쪽 노란색으로 둘러쌓인 픽셀영역은 *ValidWHLTRB 옵션일때의 유효픽셀 영역이고
오른쪽 파란색으로 둘러쌓인 픽셀영역은 *ValidWHR 옵션일때의 유효픽셀 영역입니다.
*Valid 옵션에서 L|T|R|B 후미옵션은 거의 쓸 일이 없지만 글자간 공백까지 이미지서치기준에 넣을때 유용한 옵션입니다.
*Obj 옵션에 대한 세부 설명
*Obj 옵션은 OutVarIndex 변수를 오브젝트출력 변수로 사용 할 수 있도록 하는 옵션입니다.
반환되는 validx validy validw validh 값은 *Valid 옵션 유무에 관계없이 *ValidWH 옵션을 적용했을때의 픽셀영역을 기준으로 합니다.
;*TargetFile<%searchFile%> : 검색대상이 화면이 아닌 이미지파일인 경우 사용하는 옵션 ;*Listmax11223 : *ListmaxNN옵션으로 NN은 이미지리스트의 파트이미지 총 개수를 나타낸다.
;*UseZeroIndex : 이미지리스트의 시작인덱스를 1이 아닌 0을 사용한다.
;*ValidWH : 이미지리스트의 각 파트이미지의 크기를 재조정한다. (투명값으로 처리된 외곽 픽셀영역을 최대한 제거) ;*FixW : 검색대상영역의 시작좌표를 기준으로 검색할 가로영역을 파트이미지크기에 맞게 고정한다. (*Valid 옵션의 영향도 받는다) ;*Obj : so 변수는 원래 검색성공한 파트이미지의 인덱스 번호를 반환하지만, 이 옵션으로 인해 세부항목이 포함된 오브젝트 변수를 반환한다. ;*TransBlack : 이미지리스트의 검은색영역을 투명색 처리 ;*Transnot%colorFont% : 이미지리스트의 각 파트이미지를 검색영역에서 검색시, colorFont 컬러값이 투명처리된 픽셀에 존재할시 노매치 처리한다. ;(비슷한 글자 오인 추출을 막음 : ex. '각' 과 '감') if !ErrorLevel { ;*Obj 옵션으로 인해 so 출력변수는 인덱스값 뿐만 아니라 찾은파트이미지의 세부정보를 저장한 오브젝트를 반환함 text .= GetChar_Hangle(so.index) ;추출한 글자 저장 curx := so.validx + so.validw ;x축 검색시작점을 찾은글자의 다음픽셀로 교체 ;현재검색점에서 다음글자가 나타나는 지점을 찾기위해 픽셀서치 ;*ScanBR 옵션은 '상측에서 하단' 그리고 '좌측에서 우측' 으로 검색하므로 처음 나타나는 x축 글자픽셀 위치를 정확히 찾을수 있음 PixelSearch, nextx,sy, curx,cury,endx,endy, colorFont,, *TargetFile<%searchFile%> *ScanBR if !ErrorLevel { spaceCnt := (nextx-curx) // spacePixelCnt ;띄어쓰기 개수 얻기 curx := nextx ;x축 검색시작점을 발견된 다음글자 시작점으로 교체 ;띄어쓰기 적용 loop % spaceCnt text .= " " } else break ;발견된 글자가 없을시 루프 종료 } } msg = (LTrim 글자시작점 = %startx%,%starty% 추출한글자 = %text% ) MsgBox % msg return
;------------------------------------------------------------ ;이미지 배열인덱스로 한글 한글자를 반환한다. ;반환값 실패시 "" 빈문자열 반환 GetChar_Hangle(index) { ;한글이미지리스트의 파트이미지 수 = 11223 (완성한글글자수 11172자 + 개소한글글자수 51자) static asc_가 = 44032 ;부터 11172개 글자 static asc_힣 = 55203 static asc_ㄱ = 12593 ;부터 51개 글자 static asc_ㅣ = 12643 asc := asc_가 + index if (index>=11172) asc := index - 11172 + asc_ㄱ return Chr(asc) }
X1, Y1, X2, Y2, : 검색대상 영역 (*WH 옵션시 X2, Y2 값은 가로 및 세로 크기값)
ColorID : 검색할 컬러값 (기본 컬러 포맷은 GRB)
Variation : 컬러 공차값으로 0~255 사이의 숫자
[추가변수]
OutVarExceptColor : *Except 또는 *ExceptLine 옵션 사용시에만 유효한 변수이며 검색된 예외컬러가 존재하는 픽셀 좌표의 컬러값을 반환
[기존옵션 - 되도록 * 기호를 붙인 *Fast, *RGB 같은 사용 방식을 권장] *Fast : 오토잇에서 업그레이드된 검색방식을 사용하기 위한 옵션 *RGB : 입력된 검색컬러를 RGB 컬러값으로 적용
[추가옵션 - 추가옵션 사용시 *Fast 옵션 자동 사용] *WH : X2,Y2값을 가로 및 세로 사이즈 값으로 사용 *Scan(RB|BR|LT|TL|RT|TR|LB|BL) : 스캔방향 설정 (기본스캔방향은 RB) *Except : 입력 컬러값을 제외한 컬러값이 존재하는 픽셀좌표 반환 *ExceptLine : 입력 컬러값이 존재하지 않는 스캔라인의 첫번째 픽셀좌표 반환 *Target(File|HBmp|HBmpNotDel)xx : 이미지서치 대상을 화면이 아닌 파일이나 HBITMAP 핸들로 사용 - 검색대상이 파일일때 < > 기호로 파일경로를 둘러싸 줄것 : *TargetFile<filePath>
*Scan 옵션에 대한 세부설명
이미지서치나 픽셀서치에서 *ScanXX 옵션으로 설정 가능하며 검색시작점과 검색방향의 우선순위를 지정하는데 사용합니다. 오토핫키의 기본 스캔방향은 왼쪽상단에서 오른쪽으로 그리고 아래로 진행하는 방식이며 *ScanRB 옵션과 같습니다.
아래 스샷의 스캔 진행방향은 1번이 선두 스캔방향이며 2번이 후순위 스캔방향입니다.
*Except 옵션
픽셀서치에서 *Except 옵션으로 설정 가능하며 Blue 컬러가 입력컬러인 경우 Blue 컬러를 제외한 다른 컬러값이 발견된 픽셀 좌표를 반환
- 위의 샘플픽셀배열에서 기본스캔방향일 경우 반환 좌표는 x=8 , y=0
*ExceptLine 옵션
픽셀서치에서 *ExceptLine 옵션으로 설정 가능하며 Blue 컬러가 입력컬러인 경우 Blue 컬러가 존재하지 않는 스캔라인의 첫번째 픽셀 좌표를 반환
cury := starty loop { ;y축좌표가 범위를 벗어난 경우 루프 종료 if (cury>endy) break
curx := startx loop { ;검색할 컬러 찾기 PixelSearch, sx,sy, curx,cury,endx,cury, searchColor,, *TargetFile<%searchFile%> if !ErrorLevel { ;윗픽셀과 같은색이 아닐경우 다른블럭으로 인식 PixelGetColor, color, sx,sy-1, *TargetFile<%searchFile%> if (color<>searchColor) { obj := {x:sx, y:sy} result.Insert(obj) } curx := sx + 1 cury := sy
;검색할 컬러 이외의 다른 컬러 찾기 (*Except 옵션) PixelSearch, sx,sy, curx,cury,endx,cury, searchColor,, *Except *TargetFile<%searchFile%> if !ErrorLevel curx := sx else break } else break } ++cury }
;검색된 좌표목록 출력 text = 픽셀서치로 특정컬러블럭의 좌표 찾기 (여기서는 '적색' 블럭)`n`n for k, v in result text .= k " : " v.x "," v.y "`n" MsgBox,,, % text
[옵션] *BGR : BGR 컬러를 사용할때 쓰는 옵션이며, 이 옵션이 없을시 RGB 로 적용 됩니다. *Except : searchColor 값을 제외한 모든 컬러값을 교체합니다. *SrcNotDel : hOrgBmp 핸들을 초기화 하지 않습니다. 이 옵션이 없을시엔 초기화 됩니다. *n(variation) : 0~255사이의 숫자값으로 searchColor 값에 공차값을 적용합니다.
주의 1) hOrgBmp가 DC에서 사용중인 경우 DC에서 선택해제 후에 사용해야 합니다.
이 옵션은 규격화된 글자이미지나 숫자 이미지 검색시 겹치는 픽셀이 있는 이미지가 있을경우 사용합니다. 예를 들어 숫자3 과 숫자8을 이미지서치 한다고 했을때 숫자3 이미지로 검색하는 경우 숫자8도 검출이 됩니다. 검색용 이미지의 배경이 흰색이고 글자색이 검은색이라고 했을시 TransWhite 값과 TransnotBlack으로 설정하면 숫자3이미지로 숫자8이미지 위치를 검색 할 때 숫자3의 모든 흰색배경픽셀과 매칭되는 검색대상 픽셀에 검은색 이 있을경우 노매칭으로 판단하게 됩니다. 이렇게 숫자3 이미지로 검색할때 숫자8이 검색되는 현상을 막을수 있습니다.
*HBmp : 검색이미지를 이미지파일 대신 HBITMAP 핸들을 사용하게 하는 옵션
(참고)v1.1.23.00 버전에서 이 옵션과 동일한 기능인 hbitmap: 옵션이 추가되었네요.
*HBmpNotDel : HBmp 옵션과 같지만 사용한 핸들이 자동 소멸하지 않도록 해주는 옵션
(주의) *HBmp와 *HBmpNotDel 옵션을 지정할시 검색소스이미지파일명 자리에 HBITMAP 핸들값을 넣어주어야 하며 *W 및 *H 옵션을 설정하더라도 적용되지 않습니다.(추후 패치 예정)
*All , *Allnn : 동일이미지를 검색영역에서 모두 검색되며 검색된 모든 좌표값은 OutputVarObj 변수를 통해 배열로 반환됨, Allnn인 경우는 해당 nn 개수 까지만 검색
*Target(File|HBmp|HBmpNotDel)xx : 이미지서치 대상을 화면이 아닌 이미지파일이나 HBITMAP 핸들로 지정합니다.
(주의) *TargetFile 옵션을 사용할시 <> 기호로 파일경로를 둘러싸 주어야 합니다.
ex) *TargetFile<C:\image.bmp>
[OutputVarObj]
OutputVarX, OutputVarY 변수로 받는 검색좌표 값 외에 옵션에 따라 반환값이 추가되는 경우 이 오브젝트변수로 받을 수 있습니다.
여기서 validx, validy, validw, validh 값은 *Trans 옵션이 있을시 트랜스컬러영역을 최대한 걷어낸 유효한 이미지 영역입니다.
*Scan 옵션에 대한 세부설명
이미지서치나 픽셀서치에서 *ScanXX 옵션으로 설정 가능하며 검색시작점과 검색방향의 우선순위를 지정하는데 사용합니다. 오토핫키의 기본 스캔방향은 왼쪽상단에서 오른쪽으로 그리고 아래로 진행하는 방식이며 *ScanRB 옵션과 같습니다.
아래 스샷에서 스캔 진행방향은 1번이 선두 스캔방향이며 2번이 후순위 스캔방향입니다.
*Result 옵션에 대한 세부설명
*Result 옵션은 아래 그림의 파란색 영역을 이미지서치로 찾았을 시 반환되는 좌표를 결정하는 옵션입니다. 이 옵션이 없을 경우 기본 설정으로 검색성공한 위치의 LT(Left Top) 좌표를 반환합니다. 아래 그림에 없는 옵션인 Random 옵션은 검색성공한 파란색 영역 내의 랜덤좌표를 반환합니다.