매크로

질문
2017.12.13 12:41

GDI GREYSCALE 질문합니다 .

조회 수 1100 추천 0 댓글 4



https://autohotkey.com/board/topic/82794-gdi-grayscalebitmap-converts-gdi-bitmap-to-greyscale/


이라이브러리를 참조하라고했는데 이해가안돼어서


알려주실스승님찾습니다. 사례할생각있읍니다.


  • 뚜르따르또르 2017.12.13 12:45

    쪽지나 메신저 등 남겨주시면 연락드릴게요 ㅠ 

  • 슉슉이 2017.12.13 13:45
    ;핸들(캡쳐할 원도우 핸들)

    Gdip_Shutdown(gdipToken)
    비트맵 := Gdip_BitmapFromHwnd(핸들)

    ;비트맵을 h비트맵으로
    H비트맵 := Gdip_CreateHBITMAPFromBitmap(비트맵, Background=0xffffffff)
    Gdip_DisposeImage(비트맵)

    ;h비트맵을 h비트맵 그레이스케일로
    그레이 := GDI_GrayscaleBitmap( H비트맵 )
    Gdip_DisposeImage(H비트맵)

    ;h비트맵을 비트맵으로
    비트맵 := Gdip_CreateBitmapFromHBITMAP(그레이)
    Gdip_DisposeImage(그레이)

    ;이 구간에서 비트맵 활용하면 됨, 아래는 파일로 저장하는 예시
    Gdip_SaveBitmapToFile(비트맵, filename := "회색이미지" . EditMakeBmp ".png")

    Gdip_DisposeImage(비트맵)
    Gdip_Shutdown(gdipToken)
  • 슉슉이 2017.12.13 13:46
    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

    }
  • 뚜르따르또르 2017.12.13 16:48
    선생님감사합니다 혹시.. 쪽지좀봐주실수있으실까요?ㅠ

최근 추천글

오핫 제작합니다 1 설입 2024-06-18 23:45 +2
List of Articles
분류 제목 글쓴이 최근변경 추천
질문 오토핫키 이제 막 시작하는 초보입니다. 새로만들기 스... 심장의중심 2016.10.26 0/0
질문 오토핫키 인터넷 단순 반복 용인데요 1 dnchd 2020.05.01 0/0
정보 오토핫키 인터넷 연결 확인 함수 뒷산아저씨 2023.02.10 0/0
질문 오토핫키 입문 초보 이미지서치 및 루프짜기 질문 2 색갈의비밀 2015.05.16 0/0
자유 오토핫키 입문자 인사드려요 ㅎ 5 곰발이 2015.01.28 0/0
질문 오토핫키 입문자 질문드립니다.. 2 안뇽하세용ㅋ 2016.09.18 0/0
질문 오토핫키 입문자의 비활성창 이미지서치 질문드립니다. 4 푸린느 2015.08.08 0/0
질문 오토핫키 입문자입니다. 도움이필요합니다. 아무 움직... 8 불꽃앞점멸 2017.09.28 0/0
질문 오토핫키 입문하려고 합니다. 1 쌍가마용 2019.10.14 0/0
자유 오토핫키 입문할때는 비활성만 되어도 좋았는데요... 5 푸른호수 2015.04.24 0/0
질문 오토핫키 입문할려고 합니다. 정보 많은 곳 좀 알려주세요 6 Auto영웅 2015.11.28 0/0
자유 오토핫키 입문합니다. 1 geendy 2019.01.23 0/0
질문 오토핫키 입문해보고 싶은데 1 스피노프 2017.08.30 0/0
질문 오토핫키 자체 창 크기 마우스로 조절하는 기능은 어떻... 3 우오대단 2019.06.30 0/0
자유 오토핫키 작동일시정지시키기 알려주세요 2 ddfa4 2017.02.28 0/0
질문 오토핫키 작동중지 오류 도와주세여 8 백곰e 2015.04.15 0/0
자유 오토핫키 잘 쓰시는 분들 질문좀 드릴게요 3 황승재 2019.02.07 0/0
자유 오토핫키 잘쓰시는분들 도움좀주세요~ 16 파더 2014.11.09 0/0
질문 오토핫키 잘하시는분 도움좀 부탁드려요. 3 라디 2014.11.15 0/0
자유 오토핫키 잘하시는분 찾습니다 (사례드립니다) 경북구미 2019.09.19 0/0
Board Pagination Prev 1 ... 133134135136137138139140141 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글