MFC/MFC클라이언트

비트맵 다루기와 CImage

season97 2025. 3. 10. 17:40
728x90
반응형

# 메모리DC와 화면DC

ㆍ 윈도우가 있다 = DC가 bmp를 가지고있다.

 

메모리dc는 화면 출력이 목적이 아니고 비트맵을 로딩해서 가지게 할 목적으로 있는 dc이다.

 

ㆍ BitBlt : 위 그림의 과정이라고 생각하자...  메모리 DC에 있는 비트 데이터들을 화면DC로 전송하는 함수. 

 

ㆍ 메모리DC와 화면DC를 합성할 때 특수한 처리들이 가능 (특수한 케이스가 아닌 이상 덮어쓴다)

 

ㆍ dc에관한건 winAPI에서 GDI쓴거와 크게 다를거 없다.

 

ㆍ 위에 과정들이 코드로 되어있는 것 

ㆍ GetBitmap을 통해  이 비트맵 이미지의 정보를 뽑아올 수 있다.

ㆍ 옵션을 통해 이미지의 옵션을 변경할 수 있다. 지금은 그냥 카피, 다양한 옵션이있다

 


# 이미지 출력API

ㆍ StratchBlt은 웬만하면 사용하지 않는것을 추천, 매우 이상하게됨

- 비트맵 이미지는 원본 그대로 사용하자

 

ㆍ TransparentBlt는 종종 쓸일이 있지만 막상 쓰면 좀 불편하다, RGB값으로 하나만 받기 때문 RGB(0,0,0)으로 하면 RGB(0,0,1)은 처리되지 않음  

 

 

 

# CImage

ㆍ resourse에 넣는건 컴파일에서 다끝난다.... 런타임에 외부 파일을 열고싶다? -> CImage를 사용하자.

 

ㆍ기본적으로 bmp 32bit이미지는 ARGB인데 이거는 vs에서 인식을 못한다. (투명이 없는 24bit까지만 됨)

 

ㆍ 꼭 resourse파일에서 투명이미지를 다루고 싶다면.ico 파일을 이용해야함 그때 사용되는게 CImageList클래스다

-> 이 클래스엔 드래그and드롭에 관련된 옵션도 있다 

 

-> 결국 CImage도 내부적으로는 GDI+를 사용한다

728x90
반응형

'MFC > MFC클라이언트' 카테고리의 다른 글

윈도우 영역 / 깜빡임방지 (더블버퍼)  (0) 2025.03.17
GDI 매핑 모드  (0) 2025.03.17
글꼴과 문자열  (0) 2025.03.10
렌더링 시점과 DC  (0) 2025.03.10
윈도우 그래픽 시스템  (0) 2025.03.10