设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

十全大补:CxImage图像处理类库

2009-3-6 09:19| 发布者: joejoe0332| 查看: 16494| 评论: 0

示例: 如何转换一种格式到另外一种格式 

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);

 


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部