基于GDI图像格式转换与几何变换研究.docVIP

基于GDI图像格式转换与几何变换研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GDI图像格式转换与几何变换研究

基于GDI图像格式转换与几何变换研究   摘要:在VC++中要实现常用图像格式之间的转换,通常需要掌握每种图像格式的文件头格式、调色板、图像压缩算法等具体细节,实现过程复杂。运用GDI+技术,无需了解每种图像格式的具体含义,即可实现常用图像格式间的转换,并且可以将简单几何转换后的图像保存在任意目录下。   关键词:GDI+;图像格式转换;几何变换   DOIDOI:10.11907/rjdk.143701   中图分类号:TP317.4   文献标识码:A 文章编号文章编号2015)001014102   0 引言   图像是人类获取信息的主要途径之一,在研究图像处理过程中,实现常用图像文件格式的相互转换符合现实需求。例如实现常用格式图片BMP与GIF的相互转换,首先需要对BMP和GIF文件格式进行分析,然后才能实现二者之间的读取与显示等相关操作[1]。GDI(Graphics Device Interface:图形设备接口), 是Windows提供给应用程序的编程接口[2]。GDI+是基于类的应用程序编程接口[3]。GDI+是在GDI的基础上发展起来的,增加了许多新功能。   GDI+中引用了对COM(组件对象模型)技术的支持,通过COM技术,开发人员在输出屏幕和打印机信息时无需考虑显示设备的细节,只需要调用GDI+库输出类的一些方法即可完成绘图工作 [4],GDI+简化了图像文件访问程序[5]。随着GDI+的升级,功能也随之变得更加强大,如几何转换、Alpha blending、纹理、贴图、增强的文本及图像显示技术[6]等,极大方便了开发人员在图形、图像领域的开发应用,使图像处理工作变得相对简单。   1 基于GDI+的多种格式图像转换   1.1 GDI+库初始化   在调用GDI+函数之前,需要调用GDI+库的初始化函数GdiplusStartup来初始化GDI+库,GdiplusStartup的原型如下:   Status GdiplusStartup( _out ULONG_PTR token *token,_in const GdiplusStartupInput *input,_out GdiplusStartupOutput *output);   GdiplusStartup (m_pGdiToken, m_gdiplusStartupInput, NULL)函数m_pGdiToken是存储地址,记录了此次使用GDI+的标记;m_gdiplusStartupInput包含GDI +版本,是指向调试回调函数的指针,以及用于指定是否支持后台线程和外来的图像编码等信息;output是指向GdiplusStartupOutput 类型数据的一个指针,初始化结束时,初始化函数GdiplusStartup在GdiplusStartupOutput类型数据中存放一个事件钩子函数指针和卸载事件钩子函数指针;NULL表示SuppressBackgroundThread的数据成员错误时即为空。   结束后使用GdiplusShutdown()函数关闭GDI+。   1.2 图像显示   (1)查看系统可用编码器信息。用已安装图像编码器的程序段,寻找格式为format的图像编码器类型标识码CLSID,并保存在pCLSID中,成功返回true,否则就返回false。GetImageCLSID得到格式为format的图像文件编码值和访问该格式图像COM组件的GUID值,保存在pCLSID中。在可用编码信息中查找是否支持format格式的编码值,函数原型为:   Int GetImageCLSID(const WCHAR *format, CLSID *pCLSID)   为了得到所有编码器信息、编码器数量、储存编码器信息所需要的内存等,可以调用函数GetImageEncoders()。该函数可让用户知道,在GDI+的情况下哪些图像编译信息是可用的,函数GetImageEncoders的原型是:   Status GetImageEncoders (UINT unmEncoders,UINT size,ImageCodecInfo *encoders);   在GDI+的Image类封装了对BMP、GIF、JPEG、PNG、TIFF、WMF(Windows元文件)和EMF(增强WMF)图像文件的调入、格式转换以及简单处理功能。在Image类从外设转入图像与内存中时需要图像编码器(ImageEncoders)的帮助。图像编码器(ImageEncoders)和图像解码器(ImageDecoders)是与特定的图像格式相联系的,也就是说不同格式的图像有不同的图像编码器和图像解码器

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档