使用CBufferedImageDecoder 的小问题
我使用CBufferedImageDecoder 来处理缓冲中的图像,已经在模拟器上实现了,可是在真机上,总是在OpenL失败,不知道什么原因?
[CODE]CThumbDecoder* CThumbDecoder::NewL( CFbsBitmap* bitmap,HBufC8* data,RFs& fs,MThumbDecoder &observer )
{
CThumbDecoder* self=new(ELeave)CThumbDecoder(bitmap,data,observer);
CleanupStack::PushL(self);
StartLog(_L("ConstuctL"));
self->ConstuctL(fs);
StartLog(_L("OpenL"));
self->OpenL();
StartLog(_L("ConvertL"));
self->ConvertL();
StartLog(_L(""));
CleanupStack::Pop();
return self;
}
void CThumbDecoder::OpenL()
{
// const CImageDecoder::TOptions options = CImageDecoder::EOptionAlwaysThread;
iDecoder->OpenL(*iData/*,options*/);
iBitmap->Create(iDecoder->FrameInfo().iOverallSizeInPixels,
iDecoder->FrameInfo().iFrameDisplayMode );
}
void CThumbDecoder::ConstuctL(RFs& fs)
{
iDecoder=CBufferedImageDecoder::NewL(fs);
CActiveScheduler::Add(this);
}[/CODE]
参数设为EOptionAlwaysThread或者不设我都试过,在真机上都退出了。
关键是模拟器上一切正常,真机却总是失败。
后来我突然想起来,真机与模拟器相比最大的区别就是内存大小!
所以我在模拟器上为了方便处理设置的大的处理图像的内存在真机上可能不行,所以失败了,后来把图像缓冲的大小从40000改到4000就Ok了。
不过这只是用来处理小图像,估计大图像还得用大缓冲,具体怎么搞,再研究吧。
[CODE]CThumbDecoder* CThumbDecoder::NewL( CFbsBitmap* bitmap,HBufC8* data,RFs& fs,MThumbDecoder &observer )
{
CThumbDecoder* self=new(ELeave)CThumbDecoder(bitmap,data,observer);
CleanupStack::PushL(self);
StartLog(_L("ConstuctL"));
self->ConstuctL(fs);
StartLog(_L("OpenL"));
self->OpenL();
StartLog(_L("ConvertL"));
self->ConvertL();
StartLog(_L(""));
CleanupStack::Pop();
return self;
}
void CThumbDecoder::OpenL()
{
// const CImageDecoder::TOptions options = CImageDecoder::EOptionAlwaysThread;
iDecoder->OpenL(*iData/*,options*/);
iBitmap->Create(iDecoder->FrameInfo().iOverallSizeInPixels,
iDecoder->FrameInfo().iFrameDisplayMode );
}
void CThumbDecoder::ConstuctL(RFs& fs)
{
iDecoder=CBufferedImageDecoder::NewL(fs);
CActiveScheduler::Add(this);
}[/CODE]
参数设为EOptionAlwaysThread或者不设我都试过,在真机上都退出了。
关键是模拟器上一切正常,真机却总是失败。
后来我突然想起来,真机与模拟器相比最大的区别就是内存大小!
所以我在模拟器上为了方便处理设置的大的处理图像的内存在真机上可能不行,所以失败了,后来把图像缓冲的大小从40000改到4000就Ok了。
不过这只是用来处理小图像,估计大图像还得用大缓冲,具体怎么搞,再研究吧。
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home