你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
FreeImage的图像处理软件(六)
 

六、保存图像

1)调用FreeImage_GetFIFFromFilename函数从文件名判断期望保存的图像类型,如果不支持则返回;否则转(2)。

2)调用FreeImage_GetImageType判断当前位图数据类型,若为标准位图,则测试是否支持该种图像类型的写操作以及位深度转换,否则调用FreeImage_FIFSupportsExportType检查是否能够输出当前位图。若测试成功,则调用FreeImage_Save保存位图。

在文档类中定义成员函数SaveDIB实现上述功能,代码如下:

BOOL CDIPDOC::SaveDIB(FIBITMAP *dib, LPCTSTR *lpszPath, int flag){

FREE_IMAGE_FORMAT fif=FIF_UNKNOWN;

BOOL bSuccess = FALSE;

fif=FreeImage_GetFIFFromFilename(lpszPath);

if(fif != FIF_UNKNOWN ) {

BOOL bCanSave;

FREE_IMAGE_TYPE image_type = FreeImage_GetImageType(dib);

if(image_type == FIT_BITMAP) {

WORD bpp = FreeImage_GetBPP(dib);

bCanSave=(FreeImage_FIFSupportsWriting(fif) &&FreeImage_FIFSupportsExportBPP(fif, bpp));

}

else {

bCanSave=FreeImage_FIFSupportsExportType(fif, image_type);

}

if(bCanSave) bSuccess=

FreeImage_Save(fif,dib,lpszPath,flag);

}

return bSuccess;

}

  推荐精品文章

·2019年9月目录 
·2019年8月目录
·2019年7月目录
·2019年6月目录
·2019年5月目录
·2019年4月目录    
·2019年3月目录   
·2019年2月目录   
·2019年1月目录  
·探析云计算下应用软件用户数据安全问题
·地理空间集束线可视化表达
·Android智能净水机APP开发(一)
·2018年12月目录  
·springAOP的思想和设计以及实现

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089