달력

10

« 2018/10 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'CImage'에 해당되는 글 2

  1. 2010.05.17 MFC-CImage( 스크린 샷 찍기 )
  2. 2010.05.17 MFC-CImage 클래스
2010.05.17 02:39

MFC-CImage( 스크린 샷 찍기 ) 프로그래밍/MFC2010.05.17 02:39






화면에 있는 스크린 샷을 찍을땐 어떻게 해야 할까,

그것도 작업 영역에 대해서만,

책에 있는 예제를 조금 변경해서 원하는 결과를 만들었지만,

더 나은 방법이 있는지는 아직 잘 모르겠다.

게임을 하다보면 스크린 샷을 찍게 될 경우가 종종 있다.

그랬을 경우 풀스크린이라면 상관 없을지도 모르나,

창모드라면 윈도우 화면 전체가 아닌 현재 플레이 중인 게임 화면만 이미지로 저장 되어야 한다고 생각한다.

프로젝트에서 WM_PAINT를 추가 하여 아무 이미지나 화면에 띄워 보자.
(필자는 이전의 결과 사용)

그 후 원하는 메시지 탭을 하나 추가해 보자.

키보드 라던지, 마우스 라던지,

추가한 이후에 다음처럼 코드를 작성한다.

기본적인 구조 설명은 주석으로 달아 놓았고.
살작 자세히 보아야 할 부분은
Create() 함수화 Save(), ShellExecute부분 인것 같다고 생각한다.
Create는 x, y의 크기 만큼, 이미지를 생성한다.
3번째 인자는 어떤 속성인지 정하는 부분인데, 예제에서는 바탕화면과 동일한 색상수를 사용한다고 보면 된다.
다음으로 Save는 먼저 파일의 이름을 지정하고, 그 포멧 타입을 지정한다.
JPEG, BMP, GIF, PNG등이 같이 존재한다.
마지막으로 파일을 실행하는 ShellExecute인데,
1번째 인자로 부모 핸들( 예제에서는 NULL이기 때문에 바탕 화면이 되고 )
2번째 인자는 어떤 동작을 할 것인지에 대해 지정해 준다. open이기 때문에 실행을 의미한다.(또한 explore, edit, find, print등이 존재)
3번째로는 어떤 대상을 사용할 것이가에 대해서 이며(여기서는 open할 대상)
4번째는 3번째 인자가 실행 파일인 경우 실행 파일의 실행 인자를 명시,
5번째는 실행할 프로그램의 현재 폴더 경로 이 값이 NULL이면 윈도우 기본 설정을 적용한다고 한다.
마지막인자는 nShowCmd인데,
어떤식으로 보여 줄지에 대한 플래그 값정도로 예상된다.

// 실행 화면

// 스크린 샷을 찍은 후 저장된 파일,
Posted by 안식의후크
2010.05.17 01:41

MFC-CImage 클래스 프로그래밍/MFC2010.05.17 01:41






기존의 이미지를 출력하는 방식이 아닌
MFC에서 추가된 CImage를 사용해 보자.


소스 코드 자체가 딱히 어려운 부분은 없다. 마지막에 흑백으로 출력 하는 부분이 있는데,
RGBtoGray라는 부분은 inline으로 선언되 있다.

흑백으로 변경하는 알고리즘은 거의 공식화 되어 있다고 하니 그냥 단순하게 기억해 두자.
CImage에서는 bmp뿐만 아니라 jpg, gif, png등이 있다고 한다.

CImage를 사용하기 위해서는 반드시
#include <atlimage.h> 를 해 주어야 한다.

// 실행 화면

단점은, 이미지에 대해서 모든 픽셀을 변경해서 다시 픽셀을 설정해 주기 때문에, 예제 처럼 WM_PAINT에서 매번 처리하기에는 비효율 적이다.
WM_CREATE나 또는 한번만 불러오게 변경하여, 추가 이미지를 생성하여 그 안에 변경후 저장해 두는 것이 훨씬 나은 구현 방법일 것이다.

'프로그래밍 > MFC' 카테고리의 다른 글

MFC-TextRgn( 게이지에 따른 텍스트 변화 )  (0) 2010.05.19
MFC-CImage( 스크린 샷 찍기 )  (0) 2010.05.17
MFC-CImage 클래스  (0) 2010.05.17
MFC-비트맵 띄우기  (0) 2010.05.16
MFC-가상 버튼 만들기  (0) 2010.05.16
MFC-부채꼴 그리기  (0) 2010.05.16
Posted by 안식의후크