- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC下加载多种格式图片的方法总结.doc
尽管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。
1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明)
OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCreatePictureIndirect来加载图片,不过相比而言OleLoadPicture函数简化了基于流的IPicture对象的创 建),下面是示例代码:(注:由于只是用来示例,代码中省去了出错情况的处理)???????? /*???? *如下代码段实现的功能是从指定的路径中读取图片,并显示出来???? */???? void DisplayImage(HDC hDC, LPCTSTR szImagePath)???? {???????????? HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //从指定的路径szImagePath中读取文件句柄???????????? DWORD dwFileSize=GetFileSize(hFile, NULL); //获得图片文件的大小,用来分配全局内存???????????? HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize); //给图片分配全局内存???????????? void *pImageMemory=GlobalLock(hImageMemory); //锁定内存???????????? DWORD dwReadedSize; //保存实际读取的文件大小???????????? ReadFile(hFile, pImageMemory, dwFileSize, dwReadedSize, NULL); //读取图片到全局内存当中???????????? GlobalUnlock(hImageMemory); //解锁内存???????????? CloseHandle(hFile); //关闭文件句柄????????????????? IStream *pIStream;//创建一个IStream接口指针,用来保存图片流???????????? IPicture *pIPicture;//创建一个IPicture接口指针,表示图片对象???????????? CreateStreamOnHGlobal(hImageMemory, false, pIStream) //用全局内存初使化IStream接口指针???????????? OleLoadPicture(pIStream, 0, false, IID_IPicture, (LPVOID*)(pIPicture));//用OleLoadPicture获得IPicture接口指针????????????????? //得到IPicture COM接口对象后,你就可以进行获得图片信息、显示图片等操作???????????? OLE_XSIZE_HIMETRIC hmWidth;???????????? OLE_YSIZE_HIMETRIC hmHeight;???????????? pIPicture-get_Width(hmWidth); //用接口方法获得图片的宽和高???????????? pIPicture-get_Height(hmHeight);???????????? pIPicture-Render(hDC,0,0,100,100,0,hmHeight,hmWidth,-hmHeight,NULL); //在指定的DC上绘出图片????????????????? GlobalFree(hImageMemory); //释放全局内存???????????? pIStream-Release(); //释放pIStream???????????? pIPicture-Release(); //释放pIPicture???? }?????
2.利用第三方的开发库来操作图片
这 里我向大家推荐一个库CxImage。 CxImage里面包含了许多的类,可以用来加载、保存、显示和变换图片,而且支持许多的图片格式
您可能关注的文档
- Unit 13 Healthy eating全程精品教案.doc
- Unit 3 Bards of the Internet.doc
- unit 5 Meeting Your Ancestorsnew.doc
- Unit 9 Do you want to go to a movienew.doc
- Unit10 American literature language points.doc
- Unit11 Language points explanation.doc
- UNIX系统管理-第四章:文件系统布局.doc
- VB获取文件夹路径-新建【文件】和【文件夹】.doc.doc
- vc 网络编程.doc
- VC++课程设计实践指导书(2周)6new.doc
最近下载
- 昌都专干考试题库及答案.doc VIP
- 小学六年级上册数学单元测试题全册.pdf VIP
- 《培养学生古诗词鉴赏能力的教学策略设计研究》课题材料.docx
- 克莱斯勒-Grand Voyager-产品使用说明书-Grand Voyager(3.6L)-Grand Voyager(3.6L)-2013款大捷龙用户手册(产品使用说明书).pdf
- 上海市高中物理知识点总结(完整版) (4).pdf VIP
- 财务2025年工作总结及2025年工作计划.docx VIP
- 信访维稳联动调处制度.docx VIP
- 北师大版数学四年级上册 第五单元 方向与位置 阶段素养提升练 (含答案).doc VIP
- 青岛版(六三制2017秋)小学科学 五年级上册期末考试试题(三).docx VIP
- [北师大版六年级上册数学第二单元测试2篇.doc VIP
原创力文档


文档评论(0)