- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)是与特定的图像格式相联系的,也就是说不同格式的图像有不同的图像编码器和图像解码器
您可能关注的文档
最近下载
- 中小学生成式人工智能使用指南(2025年版)解读.pptx
- 2025至2030年中国电子级玻纤布行业市场全景调查及投资策略研究报告.docx
- 【培训课件】TPM_培训.ppt VIP
- 一种检测单纯疱疹病毒1+2型IgM抗体的化学发光免疫分析试剂盒及其制备方法.pdf VIP
- 2024新生儿病室建设与管理指南试行卫医政发.docx VIP
- 2021届高一上学期语文期中检测训练卷(统编版必修上册)01-(原卷版).docx VIP
- 小学科学新教科版一年级下册全册课课练(附参考答案)(2025春).doc VIP
- 《量子力学》全套教学课件.pptx
- 组件安装角度偏差施工记录.docx VIP
- 《老年人能力评估实务》健康养老服务专业全套教学课件.pptx
文档评论(0)