网易首页 > 网易号 > 正文 申请入驻

嵌入式开发:在嵌入式GUI项目中应该使用什么字体类型?

0
分享至

  在嵌入式开发中,字体是嵌入式GUI开发的一个关键组件,在理解字体时,我们看到了很多困惑。位图图像和渲染图形之间有什么区别?文本渲染如何影响内存使用和用户体验的质量?

  字体渲染的工作原理

  如果你考虑一个呈现在计算机屏幕上的字符串,这个字符串只是代表每个字符的单个字形的集合。它们本质上是迷你图像,但它们的编码方式与在PNG图像文件中看到的不同。对于字体文件,只需要在运行时将其渲染为迷你图像所需的数据。

  字体文件格式

  对于常规图像,有多种格式,包括PNG、JPEG和位图。对于字体,有一大堆不同的格式。嵌入式系统的两种主要类型是:由苹果开发的TrueType和由微软和Adobe联合开发的OpenType。两种字体文件格式都只包含字体的数据-如果文件中也包含字形的图像,那么字体文件将非常庞大。

  从字体文件到屏幕

  在嵌入式开发中,由于字体文件只包含原始数据,因此GUI应用程序通常需要字体引擎来呈现字体。字体引擎从文件中提取数据,并在运行时在内存中构造字形(迷你图像),然后将其推送到显示器。

  当字体第一次渲染时,最好将结果缓存在内存中,以便下次需要使用时,应用程序可以从内存中获取它,而不必从头开始计算字形数据。

  缓存和预渲染字体

  缓存的使用可以追溯到图像和字体之间的相似性。以同样的方式,我们必须解码压缩图像格式,如PNG或JPEG,我们需要一个本地缓存来处理字体字形。

  在嵌入式开发中,缓存数据使用RAM,但如果你的硬件没有足够的空间,你可以决定在运行前预渲染字形图像,并将其存储在应用程序中包含的位图图像中。通过这种方式,你的应用程序可以直接从Flash或存储中提取字体,而不会占用宝贵的RAM周期。换句话说,字体字形不需要任何内存——字体引擎直接从存储设备中提取。

  需要注意的是,位图图像只是alpha数据,因此如果你想对字体进行着色,则需要存储将字形图像或迷你图像渲染到屏幕上所需的alpha值。

  预渲染具有节省RAM和解压缩和渲染字体字形的计算成本的优点,但缺点是位图所需的存储空间。

  涉及字体质量时需要考虑的3个因素

  1.嵌入式开发团队正在创建的嵌入式GUI类型

  2.正在使用的字体大小

  3.正在使用的字体类型

  例如,如果你的团队试图通过预渲染字体来节省存储空间,那么将在质量上进行权衡。如果你从8位到4位alpha,你可能不会看到太多的折衷,但当你从2位到1位时,会有显著的质量折衷。

  预渲染字体时节省空间的技巧

  1.为alpha映射存储较少的位

  嵌入式开发团队在预渲染期间节省存储空间的第一种方法是为alpha映射存储更少的位。你可以尝试4位、2位和1位alpha级别,看看节省了多少空间。然而,较低的级别会降低字体的清晰度,所以最好在模拟器或硬件上验证结果,看看哪种阿尔法最适合你的用户体验。

  不同字体alpha级别的比较

  我们比较了不同位深度的视觉效果。左上角是由字体引擎渲染并存储在内存中的TrueType字体,没有预渲染。其他结果显示了8位、4位、2位和1位预渲染位图场景。

  使用1位深度,你失去了一些清晰度,并在C、O或Q等圆形字符周围引入字体的锯齿感。本质上,这是1位编码的结果,只给你一个“开或关开关”,你要么画那个像素,要么不画?这使得绘制圆边或圆变得非常棘手。

  在一个8位的场景中,你有255个alpha值,允许在整体结果中有很好的圆角和平滑度。

  TTF和8位alpha有什么区别?

  TTF和8位方案之间没有区别。它们是完全等效的,因为TTF生成8位alpha图。当字体引擎从字体文件中读取数据并创建象形文字图像,它实际上是创建一个特定的8位alpha图字形,非常类似于预渲染版本。

  当谈到较小的字体或文本时,在某些情况下,你会看到图像质量损失或下降。在嵌入式开发中,质量损失取决于你的嵌入式用户界面、你使用的字体大小以及你使用的字体类型。它根据你希望在GUI中发生的事情而变化。

  2.尽量减少字符数以减少空间

  减少存储空间的第二种方法是最小化字符数。字体伴随着大量的字符,或者大量的占星学上所用的速记符号但是你的用户界面实际上可能并不需要它们。

  如果你将恒温器作为嵌入式GUI项目,你不需要使用所有的字符——例如,只需要0到9。这意味着你可以剥离未使用的占星学上所用的速记符号只预先渲染和存储这十个字符。

  使用开源工具,比如FontForge,允许你浏览和修改字体,创建自己的字体,并在字体文件中取出你不需要的内容。

  这只有在你事先确切知道哪些字符是必需的情况下才有效。在嵌入式开发中,如果你没有知道你在处理什么样的文本,或者如果你有一个文本或磅值经常变化的动态图形用户界面,你必须提前渲染,因为应用程序在运行之前不知道它需要什么。

  嵌入式GUI开发项目的字体优化

  在运行时优化字体时,位图字体比通过引擎渲染要快得多,因为没有预先计算的阶段。加载时间和内存查找要快得多。

  在运行时字体渲染和预渲染位图之间进行选择的快速经验法则:你有更多的Flash还是更多的RAM?

  如果你有更多RAM:使用字体引擎渲染场景

  如果你有更多的Flash:使用预渲染位图场景

  需要考虑的一个问题是整体的用户体验设计。它需要大量的动态字体和大小吗?如果是这样,字体引擎方法可能是你更好的策略。

  如果你的嵌入式GUI项目在整个用户界面中使用动态文本,例如使用国际化语言、各种字体类型或一般动态行为,则无法对其进行预渲染。如果是这样,最好的方法是使用字体引擎。在使用字体引擎时,你将希望使用缓存属性来限制RAM的数量,以便仍然可以容纳小型嵌入式设备。

  结论

  最终,在嵌入式开发中,用于嵌入式GUI开发的字体是灵活的,并且类似于图像。字体不仅用于文本,还用于嵌入式GUI中的图像设计元素。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
本季奢侈税:勇士1.77亿快船1.42亿湖人690万 剩22队每队分1196万

本季奢侈税:勇士1.77亿快船1.42亿湖人690万 剩22队每队分1196万

直播吧
2024-06-19 00:50:37
多家银行宣布下调存款利率 中长期存款利率下调幅度最大

多家银行宣布下调存款利率 中长期存款利率下调幅度最大

第一财经资讯
2024-06-18 12:57:09
准备开战了?菲律宾在吕宋岛建反舰导弹基地,黄岩岛仁爱礁危险了

准备开战了?菲律宾在吕宋岛建反舰导弹基地,黄岩岛仁爱礁危险了

说天说地说实事
2024-06-18 12:33:41
姜萍事件就是彻头彻尾的炒作,始作俑者以后必遭到最无情的反噬!

姜萍事件就是彻头彻尾的炒作,始作俑者以后必遭到最无情的反噬!

爆角追踪
2024-06-18 17:24:56
MacMahon:小老板库班已不控制球队运营 总经理向新老板汇报工作

MacMahon:小老板库班已不控制球队运营 总经理向新老板汇报工作

直播吧
2024-06-18 14:00:04
难怪孙杨放弃奥运达标赛!泳协18日宣布巴黎名单,周继红太冷静了

难怪孙杨放弃奥运达标赛!泳协18日宣布巴黎名单,周继红太冷静了

三十年莱斯特城球迷
2024-06-18 19:28:15
时隔24年,普京再到朝鲜,慌张的韩国,提出了中国不能答应的要求

时隔24年,普京再到朝鲜,慌张的韩国,提出了中国不能答应的要求

匹夫来搞笑
2024-06-18 22:12:52
兵团交通运输固定资产投资保持高位运行

兵团交通运输固定资产投资保持高位运行

央广网
2024-06-19 00:40:06
许家印被传因性质相当恶劣,疑似已经判处死刑,同伙已被杀鸡儆猴

许家印被传因性质相当恶劣,疑似已经判处死刑,同伙已被杀鸡儆猴

花哥扒娱乐
2024-06-18 21:33:51
美国急忙撇清关系!菲律宾懵了: 6船被扣, 8特种兵被缴枪, 太丢脸了

美国急忙撇清关系!菲律宾懵了: 6船被扣, 8特种兵被缴枪, 太丢脸了

文雅笔墨
2024-06-19 01:00:00
4国军舰闯入南海军演,中方039潜艇果断发射鱼雷,摧毁一艘两栖舰

4国军舰闯入南海军演,中方039潜艇果断发射鱼雷,摧毁一艘两栖舰

军事在前沿
2024-06-18 13:53:53
再次爆料!美国媒体:3名中国游泳选手呈阳性,2人是东京奥运冠军

再次爆料!美国媒体:3名中国游泳选手呈阳性,2人是东京奥运冠军

体坛知识分子
2024-06-16 06:20:02
后续!北京使馆车大妈身份遭曝光,原来大有来头,胡锡进发声

后续!北京使馆车大妈身份遭曝光,原来大有来头,胡锡进发声

科学发掘
2024-06-19 03:23:18
中国女排总决赛12人名单出炉,袁志挂帅,张常宁担任大队长

中国女排总决赛12人名单出炉,袁志挂帅,张常宁担任大队长

排球大视界
2024-06-18 15:21:50
俄军最大外援曝光,1万集装箱满载480万发炮弹,从东亚直发俄罗斯

俄军最大外援曝光,1万集装箱满载480万发炮弹,从东亚直发俄罗斯

铁血战史1927
2024-06-16 14:17:56
【现场】北京侨福芳草地突发火情,本计划3天后消防演练

【现场】北京侨福芳草地突发火情,本计划3天后消防演练

界面新闻
2024-06-18 01:03:42
中国女排抵达曼谷,袁志带队,张常宁露大将风范,王云蕗略显憔悴

中国女排抵达曼谷,袁志带队,张常宁露大将风范,王云蕗略显憔悴

湘楚风云
2024-06-18 22:34:51
创近四年新纪录!浦东机场国际客流单日突破10万,不少外籍游客入境游首站选上海

创近四年新纪录!浦东机场国际客流单日突破10万,不少外籍游客入境游首站选上海

上观新闻
2024-06-18 13:03:12
央妈锐评“数学天才”姜萍,句句猛戳有些人肺管,某些人沉默了

央妈锐评“数学天才”姜萍,句句猛戳有些人肺管,某些人沉默了

朗威谈星座
2024-06-18 23:25:26
梅州客家1-2上海海港,赛后评分:不是武磊第1,是上海海港8号第1

梅州客家1-2上海海港,赛后评分:不是武磊第1,是上海海港8号第1

侧身凌空斩
2024-06-18 21:41:39
2024-06-19 06:38:44
粤嵌教育培训
粤嵌教育培训
粤嵌教育,IT人才孵化中心!
1503文章数 64关注度
往期回顾 全部

科技要闻

第一批小米车主,已经开始卖车了

头条要闻

欧洲杯-葡萄牙2-1逆转捷克 C罗失单刀小孔塞桑绝杀

头条要闻

欧洲杯-葡萄牙2-1逆转捷克 C罗失单刀小孔塞桑绝杀

体育要闻

对于凯尔特人来说 谁是MVP根本不重要

娱乐要闻

被曝新恋情,张碧晨王琳凯发声辟谣

财经要闻

官方:税务部门没有倒查30年的安排

汽车要闻

全球最低价 现代IONIQ 5N预售价39.88万

态度原创

旅游
本地
亲子
公开课
军事航空

旅游要闻

直航加免签,利好中国—古巴旅游往来

本地新闻

我和我的家乡|在鞍山的每一步都有新发现

亲子要闻

日本妈妈15年连生9胎,老十也在路上!这“幼儿园”太难带,她已经躺平了...

公开课

近视只是视力差?小心并发症

军事要闻

"局部战术暂停"后 以军袭击加沙地带多地

无障碍浏览 进入关怀版