png转换成bitmap图和相应的掩码图

本文介绍了一种将PNG格式图像转换为Bitmap及其掩码图的方法,并提供了具体的实现代码。使用CImageDecoder进行文件解析,最终通过BitBltMasked函数在2nd环境中绘制图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一下是png转换成bitmap图和相应的掩码图:

 ibitmap=new (ELeave) CFbsBitmap();//得到的bitmap图
 ibmpmask=new (ELeave) CFbsBitmap();//得到的掩码图
 _LIT8(MimeType, "image/png");//转换的格式

//图片解析类CImageDecoder

 CImageDecoder* imageDecoder = CImageDecoder::FileNewL(afs,aFileName,MimeType,CImageDecoder::EOptionAlwaysThread );

//afs是文件服务器 记得 要事先连接上 如: RFs fs; fs.Connect();

 CleanupStack::PushL(imageDecoder);

 TFrameInfo frameinfo = imageDecoder->FrameInfo();

//asize --- 图片的大小

 TInt er = ibitmap->Create( asize,frameinfo.iFrameDisplayMode );
 TInt err = ibmpmask->Create(asize,EGray256);

 User::LeaveIfError(er);
 User::LeaveIfError(err);
 
 TRequestStatus status;
 if (KErrNone == err)
 {

//得到掩码图和解析的位图
  imageDecoder->Convert( &status, *ibitmap, *ibmpmask );
  User::WaitForRequest( status );
 } 
 CleanupStack::PopAndDestroy(imageDecoder);

 

//最后得到的 ibitmap和ibmpmask就是aFileName路径下图的位图和掩码图。

 

2nd中绘制的方法是  调用 下面函数

BitBltMasked(TPoint(),ibitmap,TRect(0,0,图片实际宽度,图片实际高度),ibmpmask

转载于:https://www.cnblogs.com/zelda/archive/2010/09/15/1827340.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值