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

在文档类中添加成员函数LoadDIB,实现位图读入功能,代码如下:

FIBITMAP* CDIPDoc::LoadDIB(LPCTSTR lpszPathName, int flag){

FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;

fif = FreeImage_GetFileType(lpszPathName);

if(fif == FIF_UNKNOWN) fif =

FreeImage_GetFIFFromFilename(lpszPathName);

if((fif != FIF_UNKNOWN) &&

FreeImage_FIFSupportsReading(fif)) {

FIBITMAP *dib = FreeImage_Load(fif, lpszPathName, flag);

return dib;

}

return NULL;

}

若想在打开文件对话框中显示FreeImage所支持的图像文件类型,则可以在文档类中添加GetFilterString函数,用以创建FreeImage支持的图像类型过滤字符串。其基本过程为:调用FreeImage_GetFIFCount函数获取FreeImage库所支持的图像文件类型数;针对每种图像类型,调用FreeImage_GetFIFExtensionList获取其扩展名列表,调用FreeImage_GetFIFDescription函数获取其类型描述字符串;将各种图像类型信息依次连接成“BMP Files (bmp)|*.bmp|JPEG Files (jpg,jif,jpeg,jpe)|*.jpg;*.jif;*.jpeg;*.jpe||”形式的字符串,就形成了图像文件类型过滤字符串。

int CDIPDoc::GetFilterString(char *szFilter)

{

int i, iCount;

char Filter[1024], *token;

Filter[0] = '\0'; szFilter[0] = '\0';//空字符

for(i=0; i<FreeImage_GetFIFCount();i++){

strcat(Filter,FreeImage_GetFIFExtensionList((FREE_IMAGE_FORMAT)i));

strcat(Filter, ",");

}

Filter[strlen(Filter)-1] = '\0';

strcat(szFilter, "All image files|");

token = strtok(Filter, ",");

while(token != NULL) {

strcat(szFilter, "*."); strcat(szFilter, token);

strcat(szFilter, ";");token = strtok(NULL, ",");

}

szFilter[strlen(szFilter)-1] = '|';

Filter[0] = '\0'; iCount = 0;

for(i=0;i<FreeImage_GetFIFCount();i++){

sprintf(Filter, "%s (%s)|", FreeImage_GetFIFDescription((FREE_IMAGE_FORMAT)i),FreeImage_GetFIFExtensionList((FREE_IMAGE_FORMAT)i));

  推荐精品文章

·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