基于Symbian的图形图像操作.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Symbian 的图形图像操作 温达,徐惠民 北京邮电大学计算机系,北京 (100876 ) E-mail :coldmeal729@ 摘 要:Symbian成立于1998年,是以NOKIA 为首的各手机厂商合伙开发的一个操作系统, 代表全球智能手机行业标准的操作系统,主要用于高端的智能手机。其开发语言为C++。 Carbide.c++是Nokia和Eclipse基金会合作的产物,主要用于Symbian平台开发。把Carbide理 解成Eclipse+CDT+Nokia plug-in也是可以的。只是Nokia把这几个组合进行了打包,免去了 一些繁琐的安装配置过程。Symbian API 已经集成了大量己定义好的图形操作方法。本文 就以Carbide.c++作为系统开发平台,来实现一个位图处理程序。该程序实现了图形绘制, 图形操作,图形存储、文字编辑等功能。 关键词:图形绘制;图形操作;Carbide C++ 1.3 1. 引 言 Font and Bitmap Server 是 Symbian OS 比较重要的服务,它主要是用来管理字体和位 图,使用高度优化的汇编代码编写的,可以提供良好快速的图形绘制能力,可以在系统中 所有的线程之间共享,通 过 RFbsSession 类来访问 FBS 。它是由window server 生成的,通 过 CFbsFont 和 CFbsBitmap 类来操作,CFbsBitmap 和 CFbsFont 都是 FBS 的一个Client 句 柄,它们提供了管理字体和位图的方法,实际的数据是存放在 FBS 上,数据仅仅保留一 [1] 份,而 Client 句柄可以有多个引用 。 位于 ROM 的Bitmap 是可以直接使用,基于文件的 Bitmap 需要加载到 RAM 后才能使 用,在 RAM 里面的 Bitmap 和 Font 都仅有一个实例,它 通过引用计数器而被多个 Client 引 用。对于大部分的应用程序来说 Font and Bitmap Server 是被隐藏在 Window Server 里面, Server 默认已经完成了对 FBS Server 的初始化操作。对于Exe 程序或者其他工作线程用户 可以通过 RFbsSession::Connect 来连接 server 。 服务最常见的应用就是贴图,而贴图和画图等操作都是通过 CFbsBitmap 这个 FBS 的 Client 对象来实现的,有点类似于 Windows 上的 HBITMAP 。一般都通过CFbsBitmap:: DataAddress 来获取内存地址,通过 GetScanLine 获取一个指定的 scan line 。位图也根据他 们的大小以 4kb 为界限在 FBS 上分为两个不同的堆。位于 LargeBitmap 的heap 可以进行自 动的磁盘碎片整理(在某些特 殊的系统事件发生时候其他线程可能会进行 Heap 的整理, 从而导致数据错位),因此这个堆是需要被 lock/unlock 的,在低版本的 S60 SDK 中提供了 TBitmapUtil 来进行堆的锁定和解锁,有位图的内容被编辑时,我们需要锁定堆。高版本的 SDK 提供了 LockHeap 和 UnlockHeap 完成这个操作,CFbsBitmap 的drawing 和拷贝等内部 操作都提供了自动锁定的功能。 目前比较常用的位图操作类有以下几种:CFbsBitmapDevice,CFbsBitGc, CFbsBitmap,CFbsFont 。为了在设备上下文中使用CFbsBitmap对象,必须先将CFbsBitmap 对象选入设备CFbsBitmapDevice,再用CFbsBitmapDevice对象初始化CFbsBitGc 。这样开始 的 CFbsBitmap对象就可以被CFbsBitGc对象操作了。在CFbsBitmapDevice对象选入 CFbsBitmap 的过程中,CFbsBitmap会把逻辑空间的对象映射到设备空间的对象。CFbsFont 用于设置字体。在进行文字绘制前,必须设置好字体才能使用,否则编译虽然不会报错, 但是在程序执行的时候文字不会正常显示。 - 1 -

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档