2008. 5. 9. 11:49
StretchBlt 이미지 축소시 깨짐현상 방지 Programing/Windows Programing2008. 5. 9. 11:49
StretchBlt()를 이용할 때 기본으로 사용하면서 축소하면 엄청난 깨짐 현상이 보인다
이러한 현상을 방지하기 위해
SetStretchBltMode(hdc, iMode)로 iMode를 정의해 줘야 한다
(출처 : 데브피아 - 안영석 님)
찾아보니 StretchBlt() API를 사용할 때 SetStretchBltMode(hdc, iMode); 로 mode를 정해줄 수 있네요..
iMode 값은 다음 중 한개가 될 수 있구요.
* BLACKONWHITE : 논리 AND연산 수행/흰색배경에 검정색으로 되어있는 흑백 비트맵에 적당.
* WHITEONBLACK : 논리 OR연산 수행/흰색 배경에 검정색으로 되어있는 흑백 비트맵에 적당.
* COLORONCOLOR : 논리연산 하지 않음/컬러 비트맵에서 가장 좋은 접근 방법이라네요.^^
* HALFTONE : 반색조 형태.
* WHITEONBLACK : 논리 OR연산 수행/흰색 배경에 검정색으로 되어있는 흑백 비트맵에 적당.
* COLORONCOLOR : 논리연산 하지 않음/컬러 비트맵에서 가장 좋은 접근 방법이라네요.^^
* HALFTONE : 반색조 형태.
저는 사진을 띄울거라서 coloroncolor을 사용했더니 바로 잘 나오네요.ㅎㅎ
ex)
pDC->SetStretchBltMode(COLORONCOLOR); // set iMode.
pDC->StretchBlt(nX, nY, button.width, button.height, &tempDC, 0,0, BMPWIDTH, BMPHEIGHT, SRCCOPY); // Draw
pDC->SetStretchBltMode(COLORONCOLOR); // set iMode.
pDC->StretchBlt(nX, nY, button.width, button.height, &tempDC, 0,0, BMPWIDTH, BMPHEIGHT, SRCCOPY); // Draw
<원본사진>
<기본 설정 - 정의를 하지 않은 경우 or BLACKONWHITE 를 줬을경우>
<설정 - WHITEONBLACK를 적용>
<설정 - COLORONCOLOR>
<설정 - HALFTOME 적용>
'Programing > Windows Programing' 카테고리의 다른 글
List Ctrl 아래로 정렬 시키기 (0) | 2008.05.14 |
---|---|
특정 컨트롤 시스템키 조합 이벤트 설정 (0) | 2008.05.10 |
루프문 동작중 키보드 입력으로 탈출하기 (0) | 2008.05.10 |
API를 이용한 Error 메시지 확인 (0) | 2008.05.08 |
CImageList 인덱스 흉내내기 (0) | 2008.05.07 |