TransparentBlt()

BOOL TransparentBlt(
  HDC hdcDest,        //DC 핸들러
  int nXOriginDest,    //비트맵이 그려질 X좌표
  int nYOriginDest,    //비트맵이 그려질 Y좌표
  int nWidthDest,      //출력될 비트맵의 가로 길이
  int hHeightDest,     //출력될 비트맵의 세로 길이
  HDC hdcSrc,        //비트맵을 미리 그려놓을 DC 핸들
  int nXOriginSrc,    //
  int nYOriginSrc,    //
  int nWidthSrc,      //
  int nHeightSrc,     //
  UINT crTransparent    //투명화 처리할 색 값 RGB()함수를 이용
);

  TransparentBlt 함수는 이름에 있는 것처럼 투명하게 출력하는 함수가 아닙니다. 일반적으로 생각하는 투명은 아래쪽 화면이 일부 보이고, 출력하려는 대상이 일부 보이는, 그래서 두 가지를 모두 볼 수 있는 상태를 말합니다. 투명을 뜻하는 단어는 transparent가 아니라 alpha입니다. 색상을 구성하는 요소로 진짜로 투명하게 출력하기 때문에 붙은 용어입니다.

TransparentBlt 함수는 비트맵을 출력할 때, 매개변수로 전달한 색상은 출력에서 제외합니다. 다시 말해 지정한 색상을 출력하지 않습니다. 바탕화면에 보이는 아이콘 이미지가 있을 때, 주변을 모두 검정색으로 처리한 상태에서 검정색을 출력하지 않겠다고 말하면, 아이콘은 사각형이 아닌 멋진 모양으로 출력됩니다. 이때 사용하는 함수가 TransparentBlt 함수입니다.

TransparentBlt 함수는 StretchBlt 함수처럼 확대/축소를 할 수 있습니다. 그러나, 대칭 이미지를 만들지는 못합니다. 그러나, 확대/축소에선 동일하기 때문에 마지막 매개변수를 제외하면 사용법은 같습니다. TransparentBlt 함수는 마지막 매개변수로 제외시킬 색상을 받고, StretchBlt 함수는 래스터 연산을 받는 점만 다릅니다. 확대와 축소가 가능하고 대칭으로 출력할 수도 있습니다. 자세한 설명은 StretchBlt 함수를 참고하기 바랍니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다