BLOG ARTICLE CxImage | 1 ARTICLE FOUND

  1. 2007.04.27 Free 이미지 라이브러리 CxImage

CodeProject를 구경하다가 CxImage 라는 이미지 라이브러리를 보았다.
http://www.codeproject.com/bitmap/cximage.asp

해당링크의 소개를 간단히 요약하자면...

CxImage는 C++ 클래스이고, load, save, display, transform images 가 가능하다.
image library로는 OpenIL, FreeImage, PaintLib같은 좋은 라이브러리가 많이 있지만, 이들 라이브러리는 주로 platform independent 를 지향 하거나, C 로 만들어지는 등 사용상의 약간 불편함들이 있다.

CxImage 자체로는
BMP,GIF,ICO,TGA,PCX,WBMP,WMF 가 지원되고, 그외 JPEG, PNG, MNG, TIFF 등의 포멧들은 추가 라이브러리가 필요하다.

CxImage 배포형식이 full과 lite가 있는데 lite는 CxImage 소스만을 포함하고 있으며, full에는 다른 포멧이 요구하는 라이브러리가 (
jpeg, png, zlib, 등등) 포함되어 있다.

CxImage 는 image resource, file, memory 로 생성이 가능하다.
 
간단한게 이미지 디코딩해서 화면에 그리는 sample code


CxImage image((BYTE*)(wi->imageData),  wi->imageSize, CXIMAGE_FORMAT_UNKNOWN);
   if (!image.IsValid() ) {
    AfxMessageBox(image.GetLastError());
    return;
   }

   CRect rc;
   int x1,y1,w,h;
   GetClientRect(&rc);
   w = image.GetWidth();
   h = image.GetHeight();
   x1 = rc.Width() - w;
   y1 = rc.Height() - h;
   x1 = x1 > 0 ? x1 / 2 : 0;
   y1 = y1 > 0 ? y1 / 2 : 0;

   image.Stretch(pDC->GetSafeHdc(), CRect(x1,y1,x1 + w,y1 + h));

원래 생성자에 imagetype을 넣도록 되어 있는데 UNKNOWN으로 줬더니 자동으로 되는듯 보인다.

AND