관리 메뉴

History

CImage_MFC 복습 1 본문

MFC/개인 실습

CImage_MFC 복습 1

luckybee 2022. 5. 21. 14:15
728x90
반응형

CImage: MFC에서 이미지를 읽을 때 사용하는 클래스.

이미지 위치

이미지 위치를 위의 경로에 놓으면 Load 할 때 따로 경로 주소를 안 써도 된다. 만약 다른 경로에 있는 이미지를 읽고 싶으면 path를 따로 적어줘야 한다.

현재 읽을 이미지의 경로는 해당 프로젝트 파일이다

해당 프로젝트 파일의 경로에 읽을 이미지를 가져다 놓으면 Load함수에 파일 이름만 적으면 된다.

 

m_my_image.Load(L"test.png");

test 이미지

 

Draw함수

draw함수는 첫 번째 인자로 dc를 넘겨주고 앞에 4개의 인자는 출력 좌표이고 뒤의 4개의 좌표는 원본 이미지의 좌표이다.

Draw함수의 8가지의 인자

즉 원본 좌표를 50,50 ,200,200 이렇게 시작 좌표와 폭과 높이 좌표를 적으면 원본 이미지에서 50,50에서 크기는 150*150 크기를 가진 이미지(A)를 출력하겠다는 뜻을 가지고 있다. 이때 출력 좌표는 *를 할 수 록 확대가 되고 /를 할 수 록 축소되어서 이미지(A)를 출력한다.

 

m_my_image.Draw(dc, 0, 0);

현재 위의 코드만 적으면 0,0 위치에서 출력하겠다는 뜻이다. 즉 뒤에 인자들이 생략이 되어 있다는 뜻이다.

 

int w, h;
w = m_my_image.GetWidth();
h = m_my_image.GetHeight();
m_my_image.Draw(dc, 0, 0,w,h);

이렇게 적으면 이미지의 폭과 높이를 알아낼 수 있다. 그래도 출력 화면은 달라질 것이 없다.

 

int w, h;
w = m_my_image.GetWidth();
h = m_my_image.GetHeight();
m_my_image.Draw(dc, 0, 0,w/2,h/2);

위 코드를 실행하면 아래와 같이 원본 이미지의 폭과 높이가 2배 작아져서 나온다.

/2 실행화면

m_my_image.Draw(dc, 0, 0,w ,h,50,50,200,200);

이렇게 코드를 바꾸고 실행하면 아래와 같이 원본에서 자른 좌표를 원래 이미지 크기만큼 출력해준다.

실행화면

AlphaBlend함수

 

AlphaBlend함수는 이미지를 출력할 때 투명도를 조절하게 해주는 함수이다.

인자는 아래와 같이 dc와 시작 좌표를 넘겨주고 마지막 인자는 0~255 사이의 투명도 값을 주는데 255는 완전 불투명 0은 완전 투명인 상태이다.

m_my_image.AlphaBlend(dc,0,0,128);

 

728x90
반응형
Comments