메모리 DC의 비트맵을 픽셀단위로 출력하되 하얀색은 투명하게 처리하는 방법에 대해 질문드립니다.

mydream의 이미지

WM_PAINT 메시지 부분에서 TransparentBitBlt 함수가 투명한 색상을 제대로 처리하지 못해서 픽셀단위로 색상을 대응되는 화면 DC에 출력하려고 다음과 같이 WM_PAINT 부분을 작성했습니다.

		case WM_PAINT:
			{
				PAINTSTRUCT pst;
				HDC hdc=BeginPaint(hwnd, &pst);
				//hdc=BeginPaint(hwnd, &pst);
 
 
 
				HBITMAP backupbitmap;
				HDC memDC=CreateCompatibleDC(hdc);
				BITMAP bitinfo;
 
				for(long x=afterimage.left;x<=afterimage.right;x++) {
					for(long y=afterimage.top;y<=afterimage.bottom;y++) {
						SetPixel(hdc, x, y, 0xffffff);
					}
				}
 
 
				backupbitmap=(HBITMAP)SelectObject(memDC, bricks[brick_type][status]);
				GetObject(bricks[brick_type][status], sizeof(BITMAP), &bitinfo);
 
				COLORREF brick_pixel, display_pixel;
 
				for(int i=0;i<bitinfo.bmHeight;i++) {
					for(int j=0;j<bitinfo.bmWidth;j++) {
						brick_pixel=(COLORREF)GetPixel(memDC, j, i);
						display_pixel=GetPixel(hdc, pos.x*MOVECELL+j, pos.y*MOVECELL+i );	
						if( ((COLORREF)brick_pixel)!=((COLORREF)0xffffff)  ) {//trouble
//여기 if문에서 햐얀색을 출력하지 않고 건너띄도록 했는데 하얀색을 계속 출력합니다.
							SetPixel(hdc, pos.x*MOVECELL+j, pos.y*MOVECELL+i, brick_pixel);			
						}
					}
				}
 
 
 
				SelectObject(memDC, backupbitmap);
				DeleteDC(memDC);
 
 
 
 
				EndPaint(hwnd, &pst);
 
			}
			return 0;

하얀색을 투명하게 처리하기 위해서 아예 비트맵이 출력되지 않도록 조건을 주어 화면 DC에 출력되지 않도록 했는데 하얀색이 출력되어 뒤의 이미지를 가려버립니다. 뒤의 이미지가 가려지면 안되는데요. 조건문에서 왜 필터링이 되지 않나요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.