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 |