비트맵 2

비트맵을 파일(png, jpg, bmp)로 저장하기 / 파일을 비트맵으로 생성하기

// GDI+ library를 사용해 bmp, png, jpg, gif 등 대부분의 이미지 형식 모두 처리 가능하다. #include #pragma comment(lib, "gdiplus") using namespace Gdiplus; int __stdcall GetEncoderClsid(const WCHAR *mime, CLSID *clsid) { UINT i, num, size; ImageCodecInfo *info; GetImageEncodersSize(&num, &size); if (!size) return -1; if (!(info = (ImageCodecInfo*)malloc(size))) return -1; GetImageEncoders(num, size, info); for (i = 0; ..

API 2022.08.21

큰 사이즈 그래픽(그림, 이미지) 화일 처리시 팁

이미지를 처리하는 경우... 보통 WM_PAINT 메시지 처리부에 리소스나 파일에서 DDB를 생성하고 화면에 뿌려주는 작업을 한다. 그런데 이경우 작은 파일의 경우는 별 상관이 없으나. 크기가 큰 파일의 경우 로딩하고 뿌리는 데 상당한 부하가 일어난다. 실제로 노트북의 경우 크기 1024*680 정도의 파일을 읽어서 화면 크기만 줄였다 늘였다 해도(WM_PAINT 메시지 발생) 상당히 버벅거림을 볼 수 있었다. 그래서 미리 DDB를 저장하는 변수를 만들어서 DDB 로딩을 먼저 시키고 그 핸들값을 저장한 후 처리해봤다. 이 경우 유효한 DDB가 있는 상태이니 WM_PAINT에서는 그냥 로딩은 하지 않고 뿌리는 작업만 하면 된다. 부하가 없어졌다. 이 결과로 비추어 볼때 화일에서 DDB를 생성하는 작업이 상..

API 2008.09.05