上次学习的是从MIF和MBM文件中加载图像,一般在程序中出现的图片都可以用这个方法,但有一点点遗憾,它只能使用svg或bmp格式,BREW或J2ME中的资源却多为png格式的。
如果想在symbian中使用jpg或者png图片,则需要用到symbian提供的那个MultimediaICL库里的类了。其中比较重的是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。
分享到:
相关推荐
本篇文章将详细讲解基于Symbian平台的JPEG图像解压技术,结合提供的"JPEG.rar"压缩包中的实例代码,帮助初学者理解并掌握JPEG解压的实现过程。 JPEG(Joint Photographic Experts Group)是一种广泛使用的有损图像...
5. **加载JPEG图像的方法**: 讲解了如何在Symbian系统中解析和加载JPEG图像文件,可能包括使用特定的库函数和数据结构。 6. **多线程与活动对象**: Symbian的并发编程依赖于活动对象(Active Objects),这是一...
本学习笔记旨在为初学者提供全面、细致的Symbian操作系统知识,帮助你快速入门并深入理解其工作原理。 一、Symbian系统概述 Symbian操作系统最初由英国的EPOC公司开发,后被诺基亚收购并成为其主要的操作系统平台。...
【Symbian学习笔记概述】 Symbian操作系统是一款曾经广泛应用于智能手机的操作系统,尤其在诺基亚手机上占据主导地位。对于想要学习Symbian开发的初学者来说,理解其开发环境的搭建至关重要。本系列笔记共28讲,...
Symbian系统以其轻量级和高效性著称,因此它提供了多种方式来处理和加载图像文件。本文将深入探讨如何在Symbian平台上处理常见的图像格式,包括jpg、png、gif、bmp和jif。 首先,我们需要了解Symbian系统中的图像...
### 5. 学习 CleanupStack #### 5.1 CleanupStack 的概念 CleanupStack 是 Symbian 系统中一种特殊的数据结构,主要用于异常处理和资源清理。当程序发生异常时,CleanupStack 会自动回溯并清理之前分配的资源,避免...
**Symbian操作系统详解** Symbian是一款历史悠久的智能手机操作系统,尤其在2000年至2010年间,它是全球领先的移动设备...通过深入学习和实践,开发者可以从Symbian中学到很多关于移动平台优化和资源管理的宝贵经验。
7. **性能优化**:考虑到Symbian系统的内存限制,处理大量图像时要注意内存管理,可以考虑使用缓存策略,或者根据需要动态加载和卸载位图。 在`ConvertEngine.cpp`和`ConvertEngine.h`文件中,可能包含了将图像文件...
5. 文件系统操作:图像浏览器需要能够读取和显示本地存储的图片,因此涉及到Symbian或通用的文件系统操作,如打开、读取和关闭文件。 6. 源代码组织结构:了解项目的目录结构和文件组织,有助于开发者理解代码的...
由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...
选择框的图标可能通过使用自定义的图像资源实现,这需要对Symbian的图形处理和资源管理有一定的了解。 标签"“symbian listbox contacts”"进一步明确了讨论的主题,即Symbian上的Listbox控件和通讯录数据的整合。 ...
### Symbian塞班操作系统深度解析 #### Symbian简介:智能移动终端的先驱者 Symbian操作系统,源自英国宝意昂公司(Psion)的EPOC操作系统,其设计理念强调“使用电子产品如同品尝乳酪般简单”。EPOC的命名灵感...
在Symbian操作系统中,开发C++应用程序时,我们经常需要处理位图(Bitmap)文件,以便在用户界面上显示图像或图标。"载入位图symbian"这个主题涵盖了如何在Symbian平台上加载和操作位图,以及如何应用掩模(Mask)来...
根据给定的信息,本文将详细解释Symbian操作系统中如何实现动态加载汉字的过程,并通过具体的代码片段进行解析。 ### Symbian系统中的汉字处理 Symbian系统是一款为移动设备设计的操作系统,广泛应用于智能手机和...
以上知识点构成了Symbian笔记的主要内容,通过学习这份笔记,开发者不仅可以理解Symbian操作系统的运作原理,还能掌握实际开发中的技巧和最佳实践。虽然Symbian系统现在已不流行,但其设计理念和许多技术仍对现代...