C++加载png图片的两种方法 - GDI+和CImage

    本文的方法可以加载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 };

        // 将文件读到流内存中
	HANDLE hFile = ::CreateFile( szFileName.
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值