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));
// 調用轉換非同步函數
iStatus = KRequestPending;
iImgDecoder->Convert(&iStatus, *aBitmap, *aBitmapMask);
SetActive();
iActiveSchedulerWait->Start();
}
其中,KMIMEType為影像檔的MIME類型,對應jpeg、gif、png分別為image/jpeg、image/gif、image/png。
點擊此處下載原始碼