매크로

#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의 저장경로를 알고싶습니다.해당 스크립트의 문제점을 알려주세요.

  • 다찾을께 2018.07.01 21:47
    Gdip_SaveBitmapToFile(Bitmap, "sFilepng") 
    부분
    
    Gdip_SaveBitmapToFile(Bitmap, "sFilepng.png")
  • profile
    숨꿀 2018.07.01 23:09
    그렇게바꿔도 저장이 되지않습니다 ㅠ
  • 다찾을께 2018.07.04 17:35

    올려주신 스크립트 내용그대로 복붙해서 위에 저부분만 수정했을땐 저장이 되더라구요
    핸들값 잡는 앱플레이어 이름 확인해보시고
    gdip.ahk 내부
    PrintWindow(hwnd, hdc)
    이부분
    PrintWindow(hwnd, hdc, 0x2)
    이렇게 한번바꿔서 해보세요

  • Hangoon 2018.07.02 13:42

    오핫키 명령어에서 입출력하는 파일의 경로는 절대경로를 사용하지 않는 경우 WorkingDir을 베이스로 한 상대경로가 됩니다.

    WorkingDir은 보통 ScriptDir과 같지만 다르게 지정할 수도 있으니 A_WorkingDir을 통해 확인하시면 되고요


    만약 WorkingDir에 파일 생성이 되지 않는다면 

    파일로 저장할 비트맵 데이터가 없기 때문이겠지요


    원인은 다양하게 나올 수 있으니 어디가 문제인지 단계별로 하나하나 확인해보시고 수정을 하시면 될겁니다.

  • Hangoon 2018.07.02 13:44
    HBitmap := Gdip_CreateHBITMAPFromBitmap(Bitmap, Background=0xffffffff)
    이부분이 문제가 될 수 있을듯한데 한번 확인해보세요
    2번째 파라메터가 이상하게 들어가 있네요
  • 만쭈 2018.09.19 01:17
    혹시 해결하셨나요...?
    저도 저장 경로를 몰라서 헤매고 있습니다 ㅠ

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 그랜드체이스 카카오 매크로 만드시는분 없나요? 망망몽몽 2018.07.11 0/0
질문 오토핫키 체크박스 질문이 있습니다. 수로 2018.07.10 0/0
질문 유튜브에 보면 강의 자세히 나오나여? 8 코코링씨 2018.10.09 0/0
질문 postMessage 드래그 테스트 중입니다. 2 Greedy 2018.07.19 0/0
질문 리스트박스 ini 질문있습니다. 1 까망갈매기 2018.07.09 0/0
질문 오류창 닫기 방법 문의 드립니다. 1 빵글빵글 2018.07.07 0/0
질문 스크립트 구동시간 표시! 문의드립니다. 2 빵글빵글 2018.07.07 0/0
질문 정규식 질문 좀 드립니다.. 3 여의도김매력 2018.07.10 0/0
질문 오토핫키 배울데 있을까요? 1 cholahan 2018.07.06 0/0
질문 두번째 질문 (초보라 하나씩 차근차근맞춰나갈려고합니... 1 깡당구 2018.07.05 0/0
질문 이미지 서치부분.. 색관련 질문 1 엘르단 2018.07.05 0/0
질문 너무 머리가 복잡하네요 좋은아이디어 부탁드립니다. 8 깡당구 2018.07.07 0/0
질문 철권7 오토핫키 질문드립니다. 1 가즈아아yo 2018.07.05 0/0
질문 흑백화를 시킨 후 이미지를 저장 하였습니다. 이후 이... 1 haegu 2018.09.11 0/0
질문 이미지서치 관련 활성화만 인식되는 문제 3 레이오 2018.07.05 0/0
질문 웹페이지 자동 로그인 프로그램중 이미지 서치 5 슈팅가이드 2018.07.15 0/0
공유 화면 이미지 흑백화 추출 프로그램 만들어봤습니다. 숨꿀 2018.07.02 0/0
질문 흑백화 이미지서치 참고할만한 글 있나요?? 3 급홍어감별사 2018.07.02 0/0
질문 첫번째 질문 [하나씩 배워갈려고합니다.) 4 깡당구 2018.07.04 0/0
질문 녹스 흑백화후 이미지파일을 저장하려하는데 제대로 되... 6 숨꿀 2018.09.19 0/0
Board Pagination Prev 1 ... 545556575859606162 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글