반응형
이번에는 비트맵에 알파 블랜딩(투명)을 하는법에 대해서 알아보겠습니다.
AlphaBlend함수가 있지만 Gdi32.lib 파일을 포함시켜야만 하는데, 윈도우 2000 이상부터는 GdiAlphaBlend함수를 사용하여,
동일한 기능을 할 수 있습니다. (해당 기능의 헤더 파일은 WinGdi.h (include Windows.h))
GdiAlphaBlend
: 투명 또는 반투명 픽셀 비트맵을 표시합니다.
- 해당 함수의 기능은 AlphaBlend와 완전히 같습니다.
BOOL GdiAlphaBlend( _In_ HDC hdcDest, _In_ int xoriginDest, _In_ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc, _In_ int xoriginSrc, _In_ int yoriginSrc, _In_ int wSrc, _In_ int hSrc, _In_ BLENDFUNCTION ftn ); |
의미 | 매개 변수 |
hdcDest, | 복사의 대상이 되는 device context의 handle 값입니다. |
xoriginDest, | 대상 사각형의 왼쪽 위 모서리의 논리 단위입니다. (x 좌표) |
yoriginDest, | 대상 사각형의 왼쪽 위 모서리의 논리 단위입니다. (y 좌표) |
wDest, | 대상 사각형의 논리 단위 폭입니다. |
hDest, | 대상 사각형의 논리 단위 높이입니다. |
hdcSrc, | 복사될(소스) 대상의 device context의 handle 값입니다. |
xoriginSrc, | 소스 구형의 논리 단위로 x좌표입니다. |
yoriginSrc, | 소스 구형의 논리 단위로 y좌표입니다 |
wSrc, | 소스 사각형의 논리 단위 폭입니다. |
hSrc, | 소스 사각형의 논리 단위 높이입니다. |
ftn | BLENDFUNCTION 및 EMRALPHABLEND 구조체를 입력합니다. (* 해당 부분의 자세한 내용은 MSDN 을 참고하여 주시길 바랍니다.) |
MSDN에 따르면 마지막 매개 변수에 2가지의 알파 블랜드값에 관한 구조체를 지정할 수 있다고 합니다.
여기서는 BLENDFUNCTION를 사용하도록 하겠습니다.
BLENDFUNCTION structure
: 대상 비트맵에 대해 블랜딩 기능을 지정하는 구조체입니다.
typedef struct _BLENDFUNCTION { BYTE BlendOp; BYTE BlendFlags; BYTE SourceConstantAlpha; BYTE AlphaFormat; } BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION; |
의미 | 매개 변수 |
BlendOp | AC_SRC_OVER에 정의된 블렌딩 동작입니다. (자세한 부분은 MSDN 사이트를 참고해주세요.) |
BlendFlags | 해당 값은 항상 0이어야 합니다. |
SourceConstantAlpha | 전체 소스(복사 될) 비트맵에 사용되는 알파 투명도 값을 지정합니다. 해당 값은 비트맵의 모든 픽셀 알파값에 적용됩니다. 해당 값을 설정하면, 이미지 픽셀이 투명 처리될것으로 간주됩니다. 해당 값의 범위는 0~255입니다. (255 불투명) |
AlphaFormat | 해당 소스(복사 될) 또는 대상(복사 장소)의 비트맵을 해석하는 방식을 지정합니다. (자세한 부분은 MSDN 사이트를 참고해주세요) |
위 매게 변수에서 AlphaFormat의 값이 AC_SRC_OVER일 경우 비트맵은 32비트여야 합니다.
만약 가지고 있는 비트맵이 24비트일 경우 해당 매개 변수 값을 0으로 해주세요.
[결과] |
반응형
'프로그래밍 관련 > Win API' 카테고리의 다른 글
WIndows API - #11-1 그래픽 처리 - (특정 색상 제거 , 크기 변경) (0) | 2015.10.19 |
---|---|
WIndows API - #10-3 그래픽 처리 - (맵핑 - 좌표 공간과 변환) (0) | 2015.10.11 |
WIndows API - #10-2 그래픽 처리 - (맵핑 - 원점 바꾸기) (2) | 2015.10.11 |
WIndows API - #10-1 그래픽 처리 - (맵핑 - 윈도우 좌표) (0) | 2015.10.10 |
WIndows API - #9-7 그래픽 처리 - (여러개의 DC 이미지 출력하기) (2) | 2015.10.09 |