盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

VC完成多格式图像的转换

时间:2025/3/15作者:未知来源:盾怪网教程人气:

[摘要]”; CFileDialog dlgChoseImage(0,“BMP”,NULL,NULL,szFilter); if(dlgChoseImage.DoModal()==IDOK) strFil...
”;

CFileDialog dlgChoseImage(0,“BMP”,NULL,NULL,szFilter);

if(dlgChoseImage.DoModal()==IDOK)

{

strFileSave=dlgChoseImage.GetPathName();

CLSID clsid;

if(GetImageCLSID(L“image/bmp”,&clsid))

{

image.Save(ToWChar(strFileSave.GetBuffer(strFileSave.GetLength())), &clsid, NULL);

//将保存后的图像进行显示

strOpenFileName=strFileSave;

this->Invalidate();

}

}

}

3.为了浏览图像转换前后的效果,还应该在窗口中分别绘制转换前后的图像,这需要在OnDraw函数中添加绘制代码,如下所示:

void CImageShowView::OnDraw(CDC* pDC)

{

CImageShowDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

//如果没有选择显示图像文件,则不用重绘

if(strOpenFileName.IsEmpty())

return;

//显示当前打开的图像文件的全名

this->GetParent()->SetWindowText(strOpenFileName);

//建立图像对象

Graphics graphics(pDC->m_hDC);

//装入图形文件

Image image(ToWChar(strOpenFileName.GetBuffer(strOpenFileName.GetLength())));

Point destPoints[3] =

{

Point(0, 0),

Point(image.GetWidth(), 0),

Point(0, image.GetHeight())

};

Point* pdestPoints = destPoints;

//在指定区域pdestPoints显示图像

graphics.DrawImage(&image, pdestPoints, 3);

}

在编译上面的程序之前,应该将Gdiplus.lib文件连编到项目中去,否则将会出现“LINK 2001”编译错误。上述程序在Visual Studio 6.0、Windows 2000/XP下调试通过,它能够显示或转换的图像格式有BMP、GIF、JPEG、Exif、PNG、TIFF、ICON、WMF、EMF等等。需要说明的是,本文只就GDI+编程的基本原理进行了阐述,事实上,GDI+的应用远不止此。

结束语

如果对本程序进行些改进,还可以编制出功能更加强大的图像处理程序。本文中所提到的程序,在笔者的主页“国税之家”(http://nationaltax.home.chinaren.com)的“个人世界”中可以下载到。有关GDI+编程的帮助信息,大家可以到微软的MSDN网站去查阅。

关键词:VC完成多格式图像的转换




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版