2014년 10월 26일 일요일

MFC에서 Animated GIF 출력하기.

ImageEx_demo.zip

위 파일을 열어보면 ImageEx클래스가 나오는데 이 클래스가 Animated GIF 를 출력할 수 있게 해준다. 사용방법은 간단하다.

우선 gdi+ 라이브러리를 설치한다.
gdiplus_sdk.zip

설치방법은 안에 다 써있다.

그 다음 자신의 프로젝트에 ImageEx클래스를 포함시키고, stdafx.h 파일을 열어서

#define ULONG_PTR DWORD

를 추가시켜주고..

#pragma comment(lib,"gdiplus.lib")
#include <gdiplus.h>
using namespace Gdiplus;

도 추가시켜준다.

그 다음 ImageEx 헤더를 인클루드 시켜준 다음, 데모파일에 있는 것처럼 사용해주면 되는데, 문제는 디버그 모드에서 new 연산자 오버로딩 에러가 난다는 것이다. 이 때 해결방법은, 데모파일의 App 클래스를 보면 알 수 있다.

GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL); 과
Exitinstance를 오버로딩해서  GdiplusShutdown(m_gdiplusToken); 를 추가시켜 주면 된다.

그 다음 릴리즈 모드로 컴파일을 하면 된다. 아니면 ImageEx 클래스가 사용되는 곳의 맨 처음에 있는 #define new DEBUG_NEW 이 부분을 주석처리하고 디버깅모드로 컴파일 해도 된다.

하지만 이 GIF 클래스는 100% 완벽하지는 않은 것 같다. 움직이는 GIF 이미지 중, 프레임과 프레임 사이의 시간이 긴것들은 출력을 하지 않는 것으로 보여지기 때문이다. 아무튼 그냥 쓰기엔 상당히 좋은 클래스.

댓글 없음: