zelda

 

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

一下是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

posted on 2010-09-15 18:19  zelda  阅读(1708)  评论(0编辑  收藏  举报

导航