WEB开发网
开发学院手机开发Symbian 开发 Symbian 加载 jpg 图片 阅读

Symbian 加载 jpg 图片

 2010-03-24 17:36:00 来源:WEB开发网   
核心提示:frameInfo.iFrameDisplayMode);iImageDecoder-> Convert(&tStatus, *iBitMap);SetActive();//定义RunL()函数处理响应 因为需要调用container中的draw函数,所以定义接口类m_pController->Notify
frameInfo.iFrameDisplayMode);

iImageDecoder-> Convert(&tStatus, *iBitMap);

SetActive();

//定义RunL()函数处理响应 因为需要调用container中的draw函数,所以定义接口类

m_pController->NotifyCompletion( KErrNone ); //调用语句 CImageConverterEngine* m_pController;

class MConverterController //接口类

{

public:

virtual void NotifyCompletion( TInt aErr ) = 0;

};

//container中处理

if( aErr == KErrNone )

{

// we have succesfully decoded an image, now make the view

// to display it

m_pImage= m_pConverter->m_pImage; //CImageConverterEngine* m_pConverter;

}

DrawNow();

需要注意的是,container类要继承MConverterController,否则无法使接口类调用container中的对应函数。顺便哀悼一下因为该问题而消耗的将尽一天的时光ORZ

----文章来源http://hi.baidu.com/bloodyfox/blog/item/81bc621e1ccac5f71ad57637.html

四、

Symbian OS不仅原生的支持Bitmap位图,还可以使用CImageDecoder类对jpeg/gif/png类型的图像进行编码和解码。

CImageDecoder可以从文件创建,也可以从描述符中创建,具体创建方法请参看SDK。

CImageDecoder要结合活动对象使用,使用的方法很简单:

void CImageHelper::LoadPngImageL(TDesC& aFileName, CFbsBitmap* aBitmap, CFbsBitmap* aBitmapMask)

{

if (iImgDecoder)

{

iImgDecoder->Cancel();

delete iImgDecoder;

iImgDecoder = NULL;

}

// 获取图片

iImgDecoder = CImageDecoder::FileNewL(iFs, aFileName, KMIMEType);

TSize size = iImgDecoder->FrameInfo().iOverallSizeInPixels;

TDisplayMode mode = iImgDecoder->FrameInfo().iFrameDisplayMode;

// 创建位图

User::LeaveIfError(aBitmap->Create(size, mode));

User::LeaveIfError(aBitmapMask->Create(size, EGray256));

上一页  1 2 3 4  下一页

Tags:Symbian 加载 jpg

编辑录入:coldstar [复制链接] [打 印]
赞助商链接