How to create a Symbian application icon (SVG)

本文提供了一步一步的指导,教你如何使用Inkscape创建符合Symbian平台要求的应用图标,包括购买Adobe Illustrator CS2、安装Inkscape、转换位图到SVG文件、SVG文件转为SVGTiny格式、SVG文件转为Symbian mif文件等关键步骤。同时,文章还分享了实际经验,讨论了Inkscape与最终设备显示之间的差异,以及如何使用Adobe Illustrator CS4获得更好的结果。

视频教程:

http://www.developer.nokia.com/Resources/Library/Design_and_UX/designing-for-nokia-platforms/designing-for-symbian/symbian-iconography-guidelines/symbian-launcher-icon-templates/symbian-inkscape-launcher-template-1.html

软件下载:
http://www.developer.nokia.com/Resources/Library/Design_and_UX/designing-for-nokia-platforms/Nokia%20Icon%20Toolkit.zip
http://cdnetworks-kr-2.dl.sourceforge.net/project/inkscape/inkscape/0.48.2/inkscape-0.48.2-1-win32.7z
http://nds2.fds-forum.nokia.com/p/d/fds_forum/e71f6b64-2ef4-44fc-a816-e3700eee1989/SVG_Converter_Win/SVG_Converter_Win_v_0_9_5_en.exe?fdptoken=1338973555_05a5954d72d4c3b64dbb1f03113304b2
http://www.developer.nokia.com/Resources/Library/Design_and_UX/designing-for-nokia-platforms/Nokia%20Icon%20Toolkit.zip

http://www.developer.nokia.com/Community/Wiki/How_to_create_a_Symbian_application_icon_(SVG)

This article shows how to create SVG icons used for the Symbian app icon, along with the tools required for it.

Create the SVG-Tiny files

There are at least five ways.

  1. The easiest way is to buy Adobe Illustrator CS2 to draw icons. Illustrator CS2 can save to SVG-Tiny format. It costs some money but it will save you a lot of time. If you're not great at drawing - there's a feature that will convert a photo to an SVG line drawing with color fills. So, make a photo of an object with your phone and have illustrator convert it to a line drawing.
  2. You can download a free editor named InkscapeInkscape saves to SVG format but not SVG-Tiny. You'll have to use the SVG2SVGT tool to convert the icon (found under S60Tools folder in SDK). But there's a problem. If you use certain draw object types then Inkscape will produce SVG code that will not work. Start with a very simple image such as a box - test it - and then add some details. (Inkscape is open source C++ so anyone of us could fix it to directly generate SVG-T for S60.)
  3. For a low cost SVG to SVG Tiny converter see SVG Pony that does a much better job than SVG2SVGT in the SDK. It works well with Inkscape generated images.
  4. A tool, SVG Converter, is available on Developer Nokia to convert SVG image to SVG Tiny.
  5. You can type an SVG file into a text editor. It's XML syntax.
  6. You can embed bitmap raster (PNG, JPEG) images in an SVG-Tiny file. You can do the conversion using the free tools Inkscape (see below) or image2svgt (Windows only).

Tips

  • An easy way to test your icon is to build the S60Ex\helloworldbasic example. Replace hellowworldbasic\gfx\qgn_menu_helloworldbasic.svg with your svg file. Test on a phone.
  • Make your icon on a 44x44 pixel canvas. This might not be necessary in some cases but it is not clear whether S60 will scale your icon in all the places it can be used.
  • Keep in mind that S60 caches icons between runs of your application - so sometimes when you update an icon you still see the previous version. You're not losing your mind - it's caching the icon.Try restarting the phone when updating icons.

Convert a Bitmap image to SVG file

  1. Install Inkscape drawing program and launch it.
  2. Click File > Open and open your PNG/JPEG file. Nokia devices also support BMP format, however SVG-Tiny standard only recommends PNG and JPEG formats.
  3. Click 'File > Save As and save as "Plain SVG".

The saved SVG file is directly usable as an SVG-Tiny file for use in Symbian application icon.

Convert SVG-Tiny files to Symbian mif file

You would find a tool called "mifconv" in the epoc32/tools:

For example: Now from command line:

c:\Symbian\9.1\S60_3rd_MR\Epoc32\tools>mifconv MyNewApp.mif /c32 C:\MyProject\gfx\qgn_menu.svg


This will generate .mif into epoc32/tools folder.

Now open your .pkg file and find for path of .mif file. Then just give path of your newly created .mif file. Like:

"C:\Symbian\9.1\S60_3rd_MR\Epoc32\tools\MyNewApp.mif" -"!:\resource\apps\YourProjectNamed_reg.mif"


You could either cut-paste your newly created .mif file into your folder and give its path in source path of your .pkg file. Like:

"C:\MyFolder\MyNewApp.mif" -"!:\resource\apps\YourProjectNamed_reg.mif"


Note: Here qgn_menu.svg has been redesigned in the Inkscape and replaced with the same name as qgn_menu.svg

Practical experience

Although I was quite enthusiastic about using Inkscape at first it turns out the gradient rendering differs a lot from what you see in Inkscape and what you get on the phone. So you end-up having to do a lot of guess work and tries to eventually get the desired result. I had designed with Inkscape an icon that was eventually working fine on 3rd edition devices but it failed to render properly on 5th edition. My guess is that there was some opacity problem. Maybe they have better opacity support on 5th edition SVG which broke the rendering of my icon.

I decided to redesign that icon using Adobe Illustrator CS4. AI is much easier to manipulate than Inkscape and the resulting SVG code much more compact. It also renders very much the same on the devices as it does on your PC. Of course you have to stick to the features supported by SVG Tiny 1.1+.

Adobe Illustrator CS4 offers an export function to SVG Tiny 1.1+ but that's not always working unfortunately. In many cases even though you specified to export as SVG Tiny 1.1+ it wants to rasterize your gradients. Even if you can manage to get the SVG Tiny 1.1+ export to work next time you open your SVGT file with AI it will complain and rasterize your gradient. One of the problem seems that there is no DTD for SVG Tiny 1.1+ and AI uses the DTD for SVG Tiny 1.1 which does not support gradients for instance.

I settled for exporting as SVG Basic (SVGB) and making sure not to use features not supported by SVG Tiny 1.1+. It seems the MIF compiler can process SVG files regardless of their headers (Tiny, Basic or full SVG) so what matters is that you use only the features supported by the phones you want to render the icon with.

Note: SVG Pony preserves gradients in Inkscape SVGs and produces very compact SVG code.

标题中提及的“BOE-B2-154-240-JD9851-Gamma2.2_190903.rar”标识了一款由京东方公司生产的液晶显示单元,属于B2产品线,物理规格为154毫米乘以240毫米,适配于JD9851型号设备,并采用Gamma2.2标准进行色彩校正,文档生成日期为2019年9月3日。该压缩文件内包含的代码资源主要涉及液晶模块的底层控制程序,采用C/C++语言编写,用于管理显示屏的基础运行功能。 液晶模块驱动作为嵌入式系统的核心软件组成部分,承担着直接操控显示硬件的任务,其关键作用在于通过寄存器读写机制来调整屏幕的各项视觉参数,包括亮度、对比度及色彩表现,同时负责屏幕的启动与关闭流程。在C/C++环境下开发此类驱动需掌握若干关键技术要素: 首先,硬件寄存器的访问依赖于输入输出操作,常借助内存映射技术实现,例如在Linux平台使用`mmap()`函数将寄存器地址映射至用户内存空间,进而通过指针进行直接操控。 其次,驱动需处理可能产生的中断信号,如帧缓冲区更新完成事件,因此需注册相应的中断服务例程以实时响应硬件事件。 第三,为确保多线程或进程环境下共享资源(如寄存器)的安全访问,必须引入互斥锁、信号量等同步机制来避免数据竞争。 第四,在基于设备树的嵌入式Linux系统中,驱动需依据设备树节点中定义的硬件配置信息完成初始化与参数设置。 第五,帧缓冲区的管理至关重要,驱动需维护该内存区域,保证图像数据准确写入并及时刷新至显示面板。 第六,为优化能耗,驱动应集成电源管理功能,通过寄存器控制实现屏幕的休眠与唤醒状态切换。 第七,针对不同显示设备支持的色彩格式差异,驱动可能需执行色彩空间转换运算以适配目标设备的色彩输出要求。 第八,驱动开发需熟悉液晶显示控制器与主处理器间的通信接口协议,如SPI、I2C或LVDS等串行或并行传输标准。 最后,完成代码编写后需进行系统化验证,包括基础显示功能测试、性能评估及异常处理能力检验,确保驱动稳定可靠。 该源代码集合为深入理解液晶显示控制原理及底层驱动开发实践提供了重要参考,通过剖析代码结构可掌握硬件驱动设计的具体方法与技术细节。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值