WinAPI

TransparentBlt 함수 , #pragma comment

Nin 2021. 1. 22. 09:41

BitBlt 함수는 크기 조절이 안되고 그냥 한쪽의 이미지를 다른 한쪽으로 

크기만큼 복사해주는 함수이다.BitBlt 함수도 원하는 위치에 일부만 출력은

가능하지만 크기를 조절은 안된다.

크기를 조절할때 TransparentBlt 함수를 사용하면 되는데 이 함수는 원하는 특정색을

제거하고 출력하는 기능도 포함되있다. 이 함수는 Window.h에 들어있기 때문에

사용은 가능하지만 구현은 msimg32.lib 여기에 들어있다. 그렇기 때문에

#pragma comment 을 통해 파일을 참조하게 해줘야 한다.

이는 헤더가 아니고 코드 그 자체를 추가하는 문장이다.

경로 설정 없이 가능한 이유는 윈도우에서 제공해주고 있는것이고 

프로젝트 속성으로 들어가서 VC++ 디렉터리의 라이브러리 디렉터리에 설정되어있다.

 

 #include <Windonw.h>
 #pragma comment(lib, "msimg32.lib")

함수의 원형

BOOL TransparentBlt(
    HDC hdcDest,
    int xoriginDest,
    int yoriginDest,
    int wDest,
    int hDest,
    HDC hdcSrc,
    int xoriginSrc,
    int yoriginSrc,
    int wSrc,
    int hSrc,
    UINT crTransparent)

hdcDest : 이미지를 출력할 위치의 핸들

xoriginDest : 이미지를 출력할 위치인 x 좌표
yoriginDest : 이미지를 출력할 위치인 y 좌표
wDest : 출력할 이미지의 너비
hDest : 출력할 이미지의 높이 (hdcSrc로부터 받은 이미지를 이 너비,높이에 맞게 크기 변경)
hdcSrc : 이미지의 핸들
xoriginSrc : 가져올 이미지의 시작지점인 x 좌표
yoriginSrc : 가져올 이미지의 시작지점인 y 좌표
wSrc : 원본 이미지로부터 해당 크기만큼 잘라낼 이미지의 너비
hSrc : 원본 이미지로부터 해당 크기만큼 잘라낼 이미지의 높이

        (원본 이미지에서 이 크기만큼 잘라내어 wDest,hDest의 크기에 맞게 크기를 변경)
UINT crTransparent : 여기에 넣어준 RGB값의 색상을 제거해준다

'WinAPI' 카테고리의 다른 글

포인터형 싱글톤  (0) 2021.01.26
파일 경로 관리(문자열 파싱)  (0) 2021.01.23
enum , enum class  (0) 2021.01.22
LoadImage 함수 (이미지 로드)  (0) 2021.01.21
더블버퍼링  (0) 2021.01.20