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

Symbian 加载 jpg 图片

 2010-03-24 17:36:00 来源:WEB开发网   
核心提示:来看看如何使用它的吧,先定义两个字串:_LIT(KJPEGFile,"C:\Data\me.jpg");_LIT(KJPEGType,"image/jpeg");使用的代码比较简单,Symbian 加载 jpg 图片(2),如下所示:iDec = CImageDecoder::F

来看看如何使用它的吧。先定义两个字串:

_LIT(KJPEGFile,"C:\Data\me.jpg");

_LIT(KJPEGType,"image/jpeg");

使用的代码比较简单,如下所示:

iDec = CImageDecoder::FileNewL(iRFs,KJPEGFile);

iParent->iBkImageMask=new (ELeave) CFbsBitmap();

iParent->iBkImageMask->Create( iDec-> FrameInfo().iOverallSizeInPixels,iDec-> FrameInfo().iFrameDisplayMode );

iDec->Convert( &iStatus, *(iParent->iBkImageMask) );

其中的iDec是CImageDecoder的实例,而iRFs是RFs的实例。而iParent->iBkImageMask则是一个 CFbsBitmap对象实例。

也就是说,我们先利用CImageDecorder::FileNewL来打开一个图像文件(它会自已判断图像类型,我们也可以提供给它我们指定的图像类 型)。然后这个图像的信息就保存在iDec->FrameInfo()中了,利用这个信息可以创建一个CFbsBitmap实例(因为 symbian中所有显示的图像都是这种类型)。最后,调用CImageDecorder的异步函数Convert就可以将图像(jpeg 或者png格式的)转换成CFbsBitmap位图了。唯一的麻烦是Convert是一个异步函数,第一个参数是TRequestStatus类型(可以 是一个活动对象的iStatus成员)。

除了CImageDecorder::FileNewL以外还有一个CImageDecorder:;DataNewL也可以用来从一个缓冲区的字节内容构造出图像数据,只是它第二个参数是TDesC8&类型的aSourceData。

[补充]

别忘了包括头文件 ImageConversion.h,还有引入库imageconversion.lib。

-----文章引用http://hi.baidu.com/simbalg/blog/item/77f007541bd4525c574e0087.html

三、

1.只能用异步

2.Convert之后是SetActive(); 在RunL()等待结果.

//在添加的Active Object类中加载图片

_LIT(fName, "c:\blackFont.png "); //要使用symbian中的路径,而不是Windows的路径。

User::LeaveIfError(iRfs.Connect());

iImageDecoder = CImageDecoder::FileNewL(iRfs, fName);

iBitMap = new(ELeave) CFbsBitmap();

TFrameInfo frameInfo;

frameInfo = iImageDecoder-> FrameInfo();

iBitMap-> Create(frameInfo.iOverallSizeInPixels,

上一页  1 2 3 4  下一页

Tags:Symbian 加载 jpg

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