소개 http://www.codeproject.com/bitmap/cximage.asp 교수가 임무를 하나 주었다. 화면을 캡처해서 전송하는 것이다. 간단하지만, 제대로 해보려니 고려할 사항이 많았다. 전송하기 쉽게 연속형 배열로 만들고, 전송 효율을 높이기 위해 압축도 해야 한다. 전송 단계에는 어떤 문제가 발생할 지 모른다. 현재 예상되는 문제는 (1) 전송 완료가 (매우!) 오래 걸리는 경우 (2) 전송 중 연결 실패 등이다. 이 문제를 회피하기 위해 일단 layer를 하나 두고 진행하려고 한다. 캡처는 쉽게 이루어졌으나, 비트맵의 래스터 처리가 문제였다. 게다가 압축도 해야한다. 그런고로 이미지 처리를 단순화시켜야 했다. CxImage는 내 문제에 딱 맞는 도구이다. 메모리 상에서 JPG로 파일을 변환하면 압축을 쉽게할 수 있다. 이 글을 쓰는 시점에서 버전은 5.99c. 이 라이브러리를 쓰려면 소스를 받아 컴파일해야 한다. 내가 컴파일한 lib 파일은 내가 작성한 예제 소스의 CxImage 폴더에 있다. 자신의 프로젝트에 쓰려면 주의할 점이 있다. (1) 언어 설정 변경 Project Property > Config. Property > General > Char. Set 으로 가서 MBCS로 변경한다. (3) 버퍼 초기화
홈페이지 http://www.xdp.it/cximage.htm
CxImage는 문자셋을 기본적으로 Multi-Byte Character Set(이하 MBCS)를 쓴다. 그런데, VS 2005의
기본 속성은 Unicode이므로 문자열을 넘길 때 오류가 발생한다. 변경하려면 다음과 같이 한다.
(2) 라이브러리 링크
jasper.lib를 사용하나, 어디서 사용하는지 찾을 수가 없었다. 어쨌든, 이 라이브러리를 링크
하지 않으면 심볼 오류가 발생하므로 추가하자.
long size;
BYTE *buffer = 0; // buffer를 0으로 하지 않으면 예외가 발생한다image.Encode( buffer, size, CXIMAGE_FORMAT_JPG );
※ 주의할 점은 사용하면서 업데이트시킬 예정
'코드' 카테고리의 다른 글
OpenTNL API를 이용하여 메모리 데이터 전송하기 (0) | 2006.10.04 |
---|---|
Windows Platform SDK의 DirectShow 샘플 컴파일하기 (0) | 2006.09.29 |
Inno Setup 5 Script (0) | 2006.09.09 |
CQ 빌더 (0) | 2006.08.01 |
버텍스 회전 이용하기 (0) | 2006.07.08 |