原副标题:PDP合作开发:在PDPGUI工程项目中如果采用甚么手写体类别?
在PDP合作开发中,手写体是PDPGUI合作开发的两个关键性模块,在认知手写体时,他们看见了很多疑惑。绘图影像和绘图绘图间有甚么差别?文档绘图如何影响缓存采用和使用者新体验的产品质量?
手写体绘图的工作基本原理
假如你考虑两个呈现出在计算机萤幕上的数组,这个数组而已代表每一字符串的一般而言字型的子集。它其本质上是Mini影像,但它的数据流与在PNG影像文档中看见的相同。对手写体文档,只须要在运转时将其绘图为Mini影像所需的统计数据。
手写体文档文件格式
对常规性影像,有多种不同文件格式,包括PNG、JPEG和绘图。对手写体,有一堆相同的文件格式。PDP系统的三种主要类别是:由苹果公司合作开发的TrueType和由谷歌和Adobe联合合作开发的OpenType。三种手写体文档文件格式都只包涵手写体的统计数据-假如文档中也包涵字型的影像,那么手写体文档将非常巨大。
从手写体文档到萤幕
在PDP合作开发中,由于手写体文档只包涵原始统计数据,因而GUI插件一般来说须要手写体发动机来呈现出手写体。手写体发动机从文档中抽取统计数据,并在运转时在缓存中内部结构字型(Mini影像),然后将其发送到显示屏。
当手写体第二次绘图时,最合适将结果缓存在缓存中,以期到时候须要采用

缓存和预绘图手写体
缓存的采用能回溯到影像和手写体间的关联性。以反之亦然的形式,他们必须音频填充影像文件格式,如PNG或JPEG,他们须要两个邻近地区缓存来处置手写体字型。
在PDP合作开发中,缓存统计数据采用RAM,但假如你的硬体没有足够多的空间,你能决定在运转前预绘图字型影像,并将其储存在插件中包涵的绘图影像中。通过这种形式,你的插件能间接从Flash或储存中抽取手写体,而不会挤占可贵的RAM周期性。换言之,手写体字型不须要任何缓存——手写体发动机间接从储存设备中抽取。
须要特别注意的是,绘图影像而已alpha统计数据,因而假如你想对手写体进行著色,则须要储存将字型影像或Mini影像绘图到萤幕上所需的alpha值。
预绘图具有节省RAM和解填充和绘图手写体字型的计算成本的优点,但缺点是绘图所需的储存空间。
涉及手写体产品质量时须要考虑的3个因素
1.PDP合作开发团队正在创建的PDPGUI类别
2.正在采用的手写体大小
3.正在采用的手写体类别
例如,假如你的团队试图通过预绘图手写体来节省储存空间,那么将在产品质量上进行权衡。假如你从8位到4位alpha,你可能不会看见太多的折衷,但当你从2位到1位时,会有显著的产品质量折衷。
预绘图手写体时节省空间的技巧
1.为alpha映射储存较少的位
PDP合作开发团队在预绘图期间节省储存空间的第一种方法是为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图字型,非常类似于预绘图版本。
当谈到较小的手写体或文档时,在某些情况下,你会看见影像产品质量损失或下降。在PDP合作开发中,产品质量损失取决于你的PDP使用者界面、你采用的手写体大小以及你采用的手写体类别。它根据你希望在GUI中发生的事情而变化。
2.尽量减少字符串数以减少空间
减少储存空间的第二种方法是最小化字符串数。手写体伴随着大量的字符串,或者大量的占星学上所用的速记符号但是你的使用者界面实际上可能并不须要它。
假如你将恒温器作为PDPGUI工程项目,你不须要采用所有的字符串——例如,只须要0到9。这意味着你能剥离未采用的占星学上所用的速记符号只预先绘图和储存这十个字符串。
采用开源工具,比如FontForge,允许你浏览和修改字体,创建自己的手写体,并在手写体文档中取出你不须要的内容。
这只有在你事先确切知道哪些字符串是必需的情况下才有效。在PDP合作开发中,假如你没有知道你在处置甚么样的文档,或者假如你有两个文档或磅值经常变化的动态图形使用者界面,你必须提前绘图,因为插件在运转之前不知道它须要甚么。
PDPGUI合作开发工程项目的手写体优化
在运转时优化手写体时,绘图手写体比通过发动机绘图要快得多,因为没有预先计算的阶段。加载时间和缓存查找要快得多。
在运转时手写体绘图和预绘图绘图间进行选择的快速经验法则:你有更多的Flash还是更多的RAM?
假如你有更多RAM:采用手写体发动机绘图场景
假如你有更多的Flash:采用预绘图绘图场景
须要考虑的两个问题是整体的使用者新体验设计。它须要大量的动态手写体和大小吗?假如是这样,手写体发动机方法可能是你更好的策略。
假如你的PDPGUI工程项目在整个使用者界面中采用动态文档,例如采用国际化语言、各种手写体类别或一般动态行为,则无法对其进行预绘图。假如是这样,最合适的方法是采用手写体发动机。在采用手写体发动机时,你将希望采用缓存属性来限制RAM的数量,以期仍然能容纳小型PDP设备。
结论
最终,在PDP合作开发中,用于PDPGUI合作开发的手写体是灵活的,并且类似于影像。手写体不仅用于文档,还用于PDPGUI中的影像设计元素。