示例: 如何转换一种格式到另外一种格式 CxImage image; // bmp -> jpg image.Load("image.bmp", CXIMAGE_FORMAT_BMP); if (image.IsValid()){ if(!image.IsGrayScale()) image.IncreaseBpp(24); image.SetJpegQuality(80); image.Save("image.jpg",CXIMAGE_FORMAT_JPG); } // png -> tif image.Load("image.png", CXIMAGE_FORMAT_PNG); if (image.IsValid()){ image.Save("image.tif",CXIMAGE_FORMAT_TIF); } 如何从资源中加载图像 //Load the resource
IDR_PNG1 from the PNG resource type CxImage* newImage = new CxImage(); newImage->LoadResource(FindResource(NULL,MAKEINTRESOURCE(IDR_PNG1), "PNG"),CXIMAGE_FORMAT_PNG); 或者 //Load the resource IDR_JPG1 from DLL CxImage* newImage = new CxImage(); HINSTANCE hdll=LoadLibrary("imagelib.dll"); if (hdll){ HRSRC hres=FindResource(hdll,MAKEINTRESOURCE(IDR_JPG1),"JPG"); newImage->LoadResource(hres,CXIMAGE_FORMAT_JPG,hdll); FreeLibrary(hdll); } 或者 //Load a bitmap resource; HBITMAP bitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1))); CxImage *newImage = new CxImage(); newImage->CreateFromHBITMAP(bitmap); 如何解码内存中的图像 CxImage image((BYTE*)buffer,size,image_type); 或者 CxMemFile memfile((BYTE*)buffer,size); CxImage image(&memfile,image_type); 或者 CxMemFile memfile((BYTE*)buffer,size); CxImage* image = new CxImage(); image->Decode(&memfile,type); 如何对内存中的图像编码 long size=0; BYTE* buffer=0; image.Encode(buffer,size,image_type); ... image.FreeMemory(buffer); 或者 CxMemFile memfile; memfile.Open(); image.Encode(&memfile,image_type); BYTE* buffer = memfile.GetBuffer(); long size = memfile.Size(); ... image.FreeMemory(buffer);
|