#Include,Gdip.ahk
F1::
WinGet,hwnd,ID,NoxPlayer
pToken:=Gdip_Startup()
;핸들(캡쳐할 원도우 핸들)
;Gdip_Shutdown(gdipToken)
Bitmap := Gdip_BitmapFromHwnd(hwnd)
;비트맵을 h비트맵으로
HBitmap := Gdip_CreateHBITMAPFromBitmap(Bitmap, Background=0xffffffff)
Gdip_DisposeImage(Bitmap)
;h비트맵을 h비트맵 그레이스케일로
Gray := GDI_GrayscaleBitmap(HBitmap)
Gdip_DisposeImage(HBitmap)
;h비트맵을 비트맵으로
Bitmap := Gdip_CreateBitmapFromHBITMAP(Gray)
Gdip_DisposeImage(Gray)
msgbox,%Bitmap%
;이 구간에서 비트맵 활용하면 됨, 아래는 파일로 저장하는 예시
Gdip_SaveBitmapToFile(Bitmap, "sFilepng")
;Gdip_DisposeImage(Bitmap)
;Gdip_Shutdown(pToken)
return
F2::
exitapp
GDI_GrayscaleBitmap( hBM ) { ; Converts GDI bitmap to 256 color GreyScale
; www.autohotkey.com/community/viewtopic.php?t=88996 By SKAN, Created : 19-Jul-2012
Static RGBQUAD256 ;
If ! VarSetCapacity( RGBQUAD256 ) {
VarSetCapacity( RGBQUAD256, 256*4, 0 ), Color := 0
Loop 255
Numput( Color := Color + 0x010101, RGBQUAD256, A_Index*4, "UInt" )
}
VarSetCapacity( BM,24,0 ), DllCall( "GetObject", UInt,hBM, UInt,24, UInt,&BM )
W := NumGet( BM,4 ), H := NumGet( BM,8 )
hdcSrc := DllCall( "CreateCompatibleDC", UInt,0 )
hbmPrS := DllCall( "SelectObject", UInt,hdcSrc, UInt,hBM )
dBM := DllCall( "CopyImage", UInt
, DllCall( "CreateBitmap", Int,2, Int,2, UInt,1, UInt,8, UInt,0 )
, UInt,0, Int,W, Int,H, UInt,0x2008, UInt )
hdcDst := DllCall( "CreateCompatibleDC", UInt,0 )
hbmPrD := DllCall( "SelectObject", UInt,hdcDst, UInt,dBM )
DllCall( "SetDIBColorTable", UInt,hdcDst, UInt,0, UInt,256, UInt,&RGBQUAD256 )
DllCall( "BitBlt", UInt,hdcDst, Int,0, Int,0, Int,W, Int,H
, UInt,hdcSrc, Int,0, Int,0, UInt,0x00CC0020 )
DllCall( "SelectObject", UInt,hdcSrc, UInt,hbmPrS )
DllCall( "DeleteDC", UInt,hdcSrc )
DllCall( "SelectObject", UInt,hdcSrc, UInt,hbmPrD )
DllCall( "DeleteDC", UInt,hdcDst )
Return dBM
}
위에는 사용한 스크립트입니다.
흑백화를 한후 이미지를 저장해서 확인해 보려는데 저장파일이 어딜봐도 보이질 않습니다.
그리고 Gdip_SaveBitmapToFile의 저장경로를 알고싶습니다.해당 스크립트의 문제점을 알려주세요.
- Elkha - Blue
- 매크로
- 오토핫키 커뮤니티
녹스 흑백화후 이미지파일을 저장하려하는데 제대로 되지않습니다.
-
-
그렇게바꿔도 저장이 되지않습니다 ㅠ
-
올려주신 스크립트 내용그대로 복붙해서 위에 저부분만 수정했을땐 저장이 되더라구요
핸들값 잡는 앱플레이어 이름 확인해보시고
gdip.ahk 내부
PrintWindow(hwnd, hdc)
이부분
PrintWindow(hwnd, hdc, 0x2)
이렇게 한번바꿔서 해보세요 -
오핫키 명령어에서 입출력하는 파일의 경로는 절대경로를 사용하지 않는 경우 WorkingDir을 베이스로 한 상대경로가 됩니다.
WorkingDir은 보통 ScriptDir과 같지만 다르게 지정할 수도 있으니 A_WorkingDir을 통해 확인하시면 되고요
만약 WorkingDir에 파일 생성이 되지 않는다면
파일로 저장할 비트맵 데이터가 없기 때문이겠지요
원인은 다양하게 나올 수 있으니 어디가 문제인지 단계별로 하나하나 확인해보시고 수정을 하시면 될겁니다.
-
HBitmap := Gdip_CreateHBITMAPFromBitmap(Bitmap, Background=0xffffffff)
이부분이 문제가 될 수 있을듯한데 한번 확인해보세요
2번째 파라메터가 이상하게 들어가 있네요
-
혹시 해결하셨나요...?
저도 저장 경로를 몰라서 헤매고 있습니다 ㅠ
분류 | 제목 | 글쓴이 | 최근변경 | 추천 |
---|---|---|---|---|
질문 | 또 SOS 입니다 ㅜ 6 | 소리없이 | 2015.11.24 | 0/0 |
질문 | 오토핫키 배워보려고했는데 ㅠㅠ 6 | 울랄라호프 | 2019.01.24 | 0/0 |
자유 | 혹시 오토핫키 다루는 분들.. 4 | 쉬르릴 | 2021.05.20 | 0/0 |
자유 | 오토핫키.! | qwaszxc | 2014.08.24 | 0/0 |
자유 | 오..토 핫키~ 1 | 69사단장 | 2014.11.24 | 0/0 |
자유 | 오토핫키 게시판이 생겨서 좋네요 2 | 멜라니 | 2015.05.04 | 0/0 |
질문 | [해결]녹스앱플 오핫 이미지 서치 질문입니다 27 | T7GG | 2015.09.22 | 0/0 |
질문 | 오토핫키 안드로이드에서도 작동시킬수있나요? 7 | ddfa4 | 2015.08.08 | 0/0 |
자유 | 헛 오토핫키가.... 4 | jojoin | 2014.12.07 | 0/0 |
자유 | 강좌 안쓰기로 햇습니다 ㅠ 7 | 캔디염 | 2019.10.10 | 0/0 |
질문 | 세나 스킬관련 질문 3 | cris | 2014.09.07 | 0/0 |
질문 | 오토핫키로 난투장입장하시는분 있나요? 8 | 앙꼬호빵 | 2014.09.09 | 0/0 |
질문 | 아래글으보고.. 안드로이드에서도 오토핫키가돌아가나요? 3 | 바하람처럼 | 2015.01.05 | 0/0 |
자유 | 블루스택은 이미지 서치보다는 픽셀 서치를 이용하는게... 11 | 묵비권 | 2015.01.05 | 0/0 |
자유 | 대박..오토핫키.. 5 | 대가루 | 2014.09.25 | 0/0 |
정보 | 아직도 그림판으로 좌표를 알아 내시는건가요?? 6 | 미치 | 2014.12.12 | 0/0 |
정보 | 이미지 서치를 했는데 모서리쪽만 클릭을 해서 많이 속... 2 | 미치 | 2014.09.22 | 0/0 |
질문 | 몬길 이미지 서치로 오토핫키 스크립트 가능하신분 계... 2 | 개꾸링 | 2014.09.07 | 0/0 |
자유 | 오토핫키가 생각보다 어렵군요 11 | 광남 | 2015.05.04 | 0/0 |
질문 | 몬길 유저분중 매크로 관련 문의 입니다. 3 | 개꾸링 | 2014.11.09 | 0/0 |