1读取:
首先 我们定义要读取的位图所在位置:
_LIT (KMultiBitmapFilename,"\\system\\apps\\graphics\\images.mbm");
其中images.mdm是我们的位图文件经过压缩打包的结果,是一个多位图文件。我们要在.mmp文件中作如下定义:
START BITMAP
HEADER
TARGETPATH
SOURCEPATH
SOURCE
SOURCE
END
系统产生一个位图头文件.mbg,这个头文件提供了一个访问位图的ID。例如,在Epoc32\include中的IMAGES.mbg文件包含如下内容:
enum TMbmImages{
接下来我们定义:
CFbsBitmap* iImage1;
CFbsBitmap* iImage2;
然后我们就可以将mdm中的位图文件读取出来:
iImage1 = new (ELeave) CFbsBitmap();
CleanupStack::PushL(iImage1);
TInt loadException = iImage1 ->Load(KMultiBitmapFilename,EMbmImagesImage1);
User::LeaveIfError(loadException);
CleanupStack::Pop(iImage1);
2显示:
在显示之前,记得需要设置图片的显示尺寸:
TSize aSize(2000 , 2000);
iImage1->SetSizeInTwips(aSize);
通过使用DrawBitmap()方法,可以将已经读取或绘制好的位图显示在窗口中。
void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource)
这里,aTopLeft指定了要绘制的位图的左上角坐标,aSource给出了要绘制的位图的内容。
void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource)
将给出的位图aSource绘制在指定的矩形区域aDestRect中。
void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect)
在给出的位图aSource中截取aSourceRect区域,将其内容绘制在指定的矩形区域aDestRect中。