Symbian学习笔记(5)——加载JPEG图像的方法

系统
上次学习的是从MIF和MBM文件中加载图像,一般在程序中出现的图片都可以用这个方法,但有一点点遗憾,它只能使用svg或bmp格式,BREW或J2ME中的资源却多为png格式的。
上次学习的是从MIF和MBM文件中加载图像,一般在程序中出现的图片都可以用这个方法,但有一点点遗憾,它只能使用svg或bmp格式,BREW或J2ME中的资源却多为png格式的。

  如果想在symbian中使用jpg或者png图片,则需要用到symbian提供的那个Multimedia ICL库里的类了。其中比较重的是CImageDecoder类,提供了对图像进行解码的功能。

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

_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。

【编辑推荐】

  1. Symbian每6个月发布一款新开源操作系统
  2. 微软建WindowsMarketplace 完善智能机平台
  3. 大力模仿Android 传微软WM6.5可装插件
责任编辑:庞桂玉 来源: it168
相关推荐

2009-04-12 09:03:50

Symbian诺基亚移动OS

2009-04-12 08:57:50

Symbian诺基亚移动OS

2009-04-12 08:46:43

Symbian诺基亚移动OS

2009-04-12 09:00:08

Symbian诺基亚移动OS

2009-04-12 08:59:05

Symbian诺基亚移动OS

2009-04-12 09:01:05

Symbian诺基亚移动OS

2009-04-12 09:06:00

Symbian诺基亚移动OS

2009-04-12 09:02:32

Symbian诺基亚移动OS

2009-04-12 08:36:09

Symbian诺基亚移动OS

2009-04-12 08:55:18

Symbian诺基亚移动OS

2009-04-12 09:07:17

Symbian诺基亚移动OS

2009-04-12 08:51:50

Symbian诺基亚移动OS

2009-04-12 08:45:32

Symbian诺基亚移动OS

2009-04-12 08:50:08

Symbian诺基亚移动OS

2024-10-08 08:19:19

2021-01-06 13:50:19

人工智能深度学习人脸识别

2010-06-29 17:42:54

UML建模

2012-05-24 09:38:08

Symbian

2009-04-12 08:52:52

Symbian诺基亚移动OS

2009-02-20 15:57:18

诺基亚Symbian研发
点赞
收藏

51CTO技术栈公众号