本文的方法可以加载bmp、jpg、png等多种格式的图片,只是在当前实际使用过程中,由于大多软件都使用带透明色的png图片,所以以加载png图片为研究切入点,找到对应的加载办法。主要使用两种方法:分别使用GDI+和CImage来加载。GDI+主要使用Image类;CImage则是微软在新版的VS中新增的MFC类,内部主要也是用GDI+来实现的。
1、Image加载图片
一般主要有两种情况:一是加载磁盘上的图片文件;另一个则是通过资源id加载资源中图片。对于磁盘上的图片文件,似乎Image的有两个方法可以现,Image::FromFile和Image::FromStream,后者流程比较复杂,前者则比较简单,直接通过图片文件的绝对路径去加载即可,非常方便。但是使用Image::FromFile则有个问题,会将磁盘上的文件“锁住”,其他地方如果要同时加载该文件则可能会出问题。所以无论是磁盘上图片文件,还是资源中的图片,都调用Image::FromStream,以流的方式去加载。两种情况,在加载到流中的代码有所不同。
(1)加载磁盘上文件
<span style="font-family:SimSun;"> TCHAR achErrInfo[512] = { 0

本文介绍了使用C++加载png图片的两种方法:GDI+的Image类和CImage类。虽然GDI+的Image::FromFile方法简单,但可能锁定文件。推荐使用CImage的流加载方式,避免文件锁定问题,实现从磁盘和资源中加载png图片。
订阅专栏 解锁全文
708

被折叠的 条评论
为什么被折叠?



