到底该怎么读png图片啊!!!!
我用DataNewL来读图片,为什么会不能显示呢。返回值是KErrUnderflow。
但我用这个图直接读却可以显示。到底为什么呢。求助!!!!!!!!!!!!!
_LIT8(MimeType, "image/png");
TInt err = file.Open(iFs, aFileName, EFileStream|EFileRead);
if(KErrNone == err)
{
TInt aSize = 0;
file.Size(aSize);
buffer = HBufC8::NewLC(aSize);
TPtr8 ptr(buffer->Des());
file.Read(ptr, aSize);
file.Close();
iImageDecoder = CImageDecoder:: DataNewL( iFs,ptr,MimeType);
}
CleanupStack::PopAndDestroy(buffer);
iBitmap = new (ELeave) CFbsBitmap();
TFrameInfo iFrameInfo=iImageDecoder->FrameInfo(0);
TRect rectOfImage = iImageDecoder->FrameInfo(0).iFrameCoordsInPixels;
TDisplayMode iFrameDisplayMode=iImageDecoder->FrameInfo(0).iFrameDisplayMode;
TInt error=iBitmap->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels, iFrameDisplayMode);
iState = EDecoding;
iImageDecoder->Convert( &iStatus, *iBitmap,0);
SetActive();