CN116341490A - 一种基于FreeType在汽车仪表HMI中实现可变字体方法 - Google Patents

一种基于FreeType在汽车仪表HMI中实现可变字体方法 Download PDF

Info

Publication number
CN116341490A
CN116341490A CN202111543994.8A CN202111543994A CN116341490A CN 116341490 A CN116341490 A CN 116341490A CN 202111543994 A CN202111543994 A CN 202111543994A CN 116341490 A CN116341490 A CN 116341490A
Authority
CN
China
Prior art keywords
text
font
freetype
texture
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111543994.8A
Other languages
English (en)
Inventor
孙启凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAIC Motor Corp Ltd
Shanghai Automotive Industry Corp Group
Original Assignee
SAIC Motor Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAIC Motor Corp Ltd filed Critical SAIC Motor Corp Ltd
Priority to CN202111543994.8A priority Critical patent/CN116341490A/zh
Publication of CN116341490A publication Critical patent/CN116341490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明根据FreeType开源库配置的库环境建立仪表工程,FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;通过属性接口控制具有纹理属性设置的文本块得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。本方案提出了使用FreeType库实现可变字体的技术方法,可以有效的解决仪表HMI中文本块无法修改文本高级属性如字重、字体宽高的问题,轻松实现字形变化的平滑过渡,使得仪表HMI文本得到更高质量的展示,为仪表UI界面设计增加了更多文本显示方案。

Description

一种基于FreeType在汽车仪表HMI中实现可变字体方法
技术领域
本申请实施例涉及电子信息技术领域,尤其涉及基于FreeType在汽车仪表HMI中实现可变字体方法。
背景技术
目前车载大屏仪表中使用的文本块节点可用于在仪表HMI中显示少量文本。UI开发工程师在仪表HMI设计中可以自设置文字的部分基础属性例如文本、字号等。但由于仪表工程不提供更多更高级的文字属性如字重、宽高的修改,UI工程师无法对文本框文字进行更灵活的设计;此外,当文字某些属性在某种特定情况下需要变化展示,例如车速信息在超速情况下文本内容需要进行字号放大等特殊处理时,字形变化无过渡,跳变突兀影响用户用车体验。
发明内容
有鉴于此,本申请实施例提供一种基于FreeType在汽车仪表HMI中实现可变字体方法,以至少部分解决上述问题。
第一方面,本申请实施例提供了一种基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,包括:
根据FreeType开源库配置的库环境建立仪表工程,FreeType开源库包括文本块文本纹理绘制函数;
在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
通过属性接口控制具有纹理属性设置的文本块,得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。
可选地,在一种实现方式中,根据FreeType开源库配置的库环境建立仪表工程,还包括:
在根据FreeType开源库配置的库环境建立仪表工程之前,对FreeType开源库进行初始化,包括创建字体文件外观对象并打开指定的字体文件。
可选地,在一种实现方式中,通过属性接口控制具有纹理属性设置的文本块,得到输出结果,还包括:
将基础字形属性,字重、字高、字宽作为接口,从接口获取字型的可变属性具体值。
可选地,在一种实现方式中,基于FreeType在汽车仪表HMI中实现可变字体方法还包括:
通过FreeType开源库函数FT_Get_MM_Var获得给定字体的变体描述符,变体描述符包括字体命名样式;
根据FreeType开源库函数FT_Set_Var_Design_Coordinates将可变字重属性赋值给字体命名样式,得到平滑过渡的字重。
可选地,在一种实现方式中,根据文本块文本纹理绘制函数对可变字体 TTF文件进行渲染处理获得具有纹理属性设置的文本块还包括:
获取字符数组,通过文本块文本纹理绘制函数将字符码转换为字形索引,根据外观对象装载字形索引获得转换后的字符位图;
转换后的字符位图,用来改变其文本、颜色属性。
可选地,在一种实现方式中,基于FreeType在汽车仪表HMI中实现可变字体方法还包括:
将字符位图转换为点阵数据流,点阵数据用于直接绘制到显示设备,或者将点阵数据流存放到自定义缓冲器中并基于缓冲器创建新的文本纹理,将获得的纹理属性设置到原有的文本块中。
第二方面,本申请实施例提供了一种基于FreeType在汽车仪表HMI中实现可变字体装置,其特征在于,包括:
处理模块、接口模块;
处理模块,用于根据FreeType开源库配置的库环境建立仪表工程, FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
接口模块,用于通过属性接口控制具有纹理属性设置的文本块,得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如第一方面或第一方面的任意一种实现方式中所描述的的基于FreeType在汽车仪表 HMI中实现可变字体方法对应的操作。
第四方面,本申请实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第一方面的任意一种实现方式中所描述的基于FreeType在汽车仪表HMI中实现可变字体方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机指令,计算机指令指示计算设备执行如第一方面或第一方面的任意一种实现方式中所描述的基于FreeType在汽车仪表HMI中实现可变字体方法。
本发明根据FreeType开源库配置的库环境建立仪表工程,FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;通过属性接口控制具有纹理属性设置的文本块得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。本方案提出了使用FreeType库实现可变字体的技术方法,可以有效的解决仪表HMI 中文本块无法修改文本高级属性如字重、字体宽高的问题,轻松实现字形变化的平滑过渡,使得仪表HMI文本得到更高质量的展示,为仪表UI界面设计增加了更多文本显示方案。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例的一种基于FreeType在汽车仪表HMI中实现可变字体方法步骤流程图;
图2为根据本申请实施例的一种基于FreeType在汽车仪表HMI中实现可变字体装置结构图;
图3为根据本申请实施例的一种电子设备图;
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一
本申请实施例一提供一种基于FreeType在汽车仪表HMI中实现可变字体方法,参照图1所示,该方法可以在后台服务器上运行,其具体包括以下步骤:
步骤101、根据FreeType开源库配置的库环境建立仪表工程,FreeType 开源库包括文本块文本纹理绘制函数;
需要说明的是,此处的FreeType开源库是一个完全免费的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括 TrueType,OpenType,Type1,CID,CFF,WindowsFON/FNT,X11PCF等。FreeType 为访问字体文件提供了一套统一的、独立于字体文件类型的、简单而易用的 API。另外,一些特别类型的API可以用来访问字体文件里的特殊数据。并且可以将字体的大纲数据(控件介绍/提示)返回给各户应用程序。FreeType的设计是基于模块的,这些模块可以在编译时被静态链接到库中或者在运行时根据需要加载。可以使用嵌入式系统编写,即提供内存管理和输入/输出流的实现,通过输入/输出流可以使你轻易地使用相同的API读取基于ROM或被压缩的或远程的字体文件。多个流实现可以并行的被一个FreeType实例使用。此处的FreeType可以包括FreeType1或FreeType2。
可选地,在一种实施例中,根据FreeType开源库配置的库环境建立仪表工程,还包括:在根据FreeType开源库配置的库环境建立仪表工程之前,对 FreeType开源库进行初始化,包括创建字体文件外观对象并打开指定的字体文件。
需要说明的是,此处的字体是可以用于显示或打印文字的各种字符图像的集合。单个字体中的图像具有一些共同的属性,包括外观、样式、衬线等。从印刷术上讲,必须区分一个字体系列和它的多个字体面,尽管它们来自同一个模板,但通常风格不同。对于其中的每一个字体,它都包含字符图像、字符度量以及其他对文本布局和特定字符编码等信息,并将数字字体视为单个文件。通过对FreeType开源库的初始化可以更准确的配置库环境,减少处理错误的发生率。
步骤102、在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
需要说明的是,此处的文本块文本纹理指的是计算机图形学中的纹理,其既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案,通常我们更多地称之为花纹。对于花纹而言,就是在物体表面绘出彩色花纹或图案,产生了纹理后的物体表面依然光滑如故。对于沟纹而言,实际上也是要在表面绘出彩色花纹或图案,同时要求视觉上给人以凹凸不平感即可。凹凸不平的图案一般是不规则的。在计算机图形学中,这两种类型的纹理的生成方法完全一致,这也是计算机图形学中把他们统称为纹理的原因所在。所以纹理映射就是在物体的表面上绘制彩色的图案。此处的渲染就是从模型生成图像的过程,通常是3D制作的最后一步。如在经过纹理贴图之后,形成了一个“木箱”模型。但是只有把它作为2D图像输出到屏幕上之后,它才能被我们的看见。这个输出的过程就是渲染。我们也可以调整这个“木箱模型”的参数,达到不同的渲染结果。比如说改变观察角度等等。
可选地,在一种实施例中,根据文本块文本纹理绘制函数对可变字体TTF 文件进行渲染处理获得具有纹理属性设置的文本块还包括:获取字符数组,通过文本块文本纹理绘制函数将字符码转换为字形索引,根据外观对象装载字形索引,获得转换后的字符位图。
需要说明的是,字符图像称为字形。单个字符可以有多个不同的图像,即多个字形,这取决于脚本、用法或上下文。几个字符也可以采用单个字形 (很好的例子是罗马连字,如“fi”和“fl”,它们可以用单个字形表示)。字符和字形之间的关系可能非常复杂,但不会在本文档中讨论。此外,某些格式使用或多或少复杂的方案来存储和访问字形。为清楚起见,我们在使用 FreeType时仅保留以下概念:一个字体文件包含一组字形;每个都可以存储为位图、矢量表示或任何其他方案(大多数可扩展格式使用数学表示和控制数据/程序的组合)。这些字形可以以任何顺序存储在字体文件中,并且通常通过简单的字形索引进行访问。字体文件包含一个或多个表,称为字符映射表(简称“charmaps”或“cmaps”),用于将字符代码转换为给定的编码(例如,ASCII、Unicode、Big5、ShiftJIS等)。)转换为相对于字体文件的字形索引。单个字体可能包含多个字符映射。例如,许多OpenType字体包含Apple 特定的charmap和Unicodecharmap,这使得它们可以在Mac和Windows平台上使用。在FreeType中,位图或像素图通过称为FT_Bitmap即字符位图。字符码(英语:Characterencoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。每个字形图像都与各种指标相关联,这些指标描述了在呈现文本时如何放置和管理它,指标与字形位置、光标前进以及文本布局有关。每个可扩展格式还包含一些全局度量,以概念(即字体)单位表示,以描述同一面中所有字形的一些属性。全局度量的示例是最大字形边界框、字体的上升部、下降部和文本高度。不可扩展的格式也包含指标。但是,它们仅适用于一组给定的字符尺寸和分辨率,并且通常以像素表示。通过获取字符数组,通过文本块文本纹理绘制函数将字符码转换为字形索引,根据外观对象装载字形索引,获得转换后的字符位图,可以更加准确的展示字符,以便对字符进行调整适应多种不同需求。
可选地,在一种实施例中,基于FreeType在汽车仪表HMI中实现可变字体方法还包括:将字符位图转换为点阵数据流,点阵数据用于直接绘制到显示设备,或者将点阵数据流存放到自定义缓冲器中并基于缓冲器创建新的文本纹理,将获得的纹理属性设置到原有的文本块中。
需要说明的是,此处的点阵数据即位图数据,位图也叫做点阵图,栅格图像,像素图,简单的说,就是最小单位由像素构成的图,缩放会失真。构成位图的最小单位是像素,位图就是由像素阵列的排列来实现其显示效果的,每个像素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个像素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。举个例子来说,位图图像就好比在巨大的沙盘上画好的画,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒单纯的不可变化颜色。通过将字符位图转换为点阵数据流可以直接将字符绘制到显示设备中,也可以生成新的文本纹理进行对后续纹理绘制进行属性设置。
步骤103、通过属性接口控制具有纹理属性设置的文本块得到输出结果,属性接口用以文本字重、字高、字宽的属性设置;
需要说明的是,此处的字重是指字体的粗细程度。一个字体的字重通常至少4-6个,其中Regular与Bold几乎是必备的。此处的字高指的是字体的竖直高度,此处的字宽指的是字符的水平宽度。此处的接口可以是同一计算机不同功能层之间的通信规则接口或仪表工程与外界进行信息交互的接口,此处的属性包括但不仅限于文本字重、字高、字宽。
可选地,在一种实施例中,通过属性接口控制具有纹理属性设置的文本块得到输出结果,还包括:将基础字形属性,字重、字高、字宽作为接口,从接口获取字型的可变属性具体值。
需要说明的是,通过从接口获取字型的可变属性具体值,可以更直接方便对字符属性进行修改,可以适应不同显示需求。
可选地,在一种实施例中,基于FreeType在汽车仪表HMI中实现可变字体方法还包括:通过FreeType开源库函数FT_Get_MM_Var获得给定字体的变体描述符,变体描述符包括字体命名样式;根据FreeType开源库函数FT_Set_Var_Design_Coordinates将可变字重属性赋值给字体命名样式,得到平滑过渡的字重。
需要说明的是,通过FreeType开源库开源库函数FT_Get_MM_Var、 FT_Set_Var_Design_Coordinates可以使得字重属性表现更加平滑。
本发明根据FreeType开源库配置的库环境建立仪表工程,FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;通过属性接口控制具有纹理属性设置的文本块得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。本方案提出了使用FreeType库实现可变字体的技术方法,可以有效的解决仪表HMI 中文本块无法修改文本高级属性如字重、字体宽高的问题,轻松实现字形变化的平滑过渡,使得仪表HMI文本得到更高质量的展示,为仪表UI界面设计增加了更多文本显示方案。
实施例二
本申请实施例二提供一种基于FreeType在汽车仪表HMI中实现可变字体装置,参照图2所示,其特征在于,包括:处理模块、接口模块;
处理模块,用于根据FreeType开源库配置的库环境建立仪表工程, FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现文本块文本纹理函数,并根据文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
接口模块,用于通过属性接口控制具有纹理属性设置的文本块,得到输出结果,属性接口用以文本字重、字高、字宽的属性设置。
实施例三
结合上述实施例一所描述的基于FreeType在汽车仪表HMI中实现可变字体方法,参照图3所示,本申请实施例三提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述实施例一所描述的基于FreeType在汽车仪表HMI中实现可变字体方法对应的操作。
实施例四
结合上述实施例一所描述的基于FreeType在汽车仪表HMI中实现可变字体方法,本申请实施例四提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时上述实施例一所描述的基于FreeType在汽车仪表 HMI中实现可变字体方法。
实施例五
结合上述实施例一所描述的基于FreeType在汽车仪表HMI中实现可变字体方法,本申请实施例五提供了一种计算机程序产品,包括计算机指令,计算机指令指示计算设备执行上述实施例一所描述的基于FreeType在汽车仪表 HMI中实现可变字体方法对应的操作。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,包括:
根据FreeType开源库配置的库环境建立仪表工程,所述FreeType开源库包括文本块文本纹理绘制函数;
在所述仪表工程中重新实现所述文本块文本纹理函数,并根据所述文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
通过属性接口控制所述具有纹理属性设置的文本块,得到输出结果,所述属性接口用以文本字重、字高、字宽的属性设置。
2.根据权利要求1所述的基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,所述根据FreeType开源库配置的库环境建立仪表工程,还包括:
在根据FreeType开源库配置的库环境建立仪表工程之前,对FreeType开源库进行初始化,包括创建字体文件外观对象并打开指定的字体文件。
3.根据权利要求1所述的基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,所述通过属性接口控制所述具有纹理属性设置的文本块得到输出结果,还包括:
将基础字形属性,字重、字高、字宽作为接口,从所述接口获取所述字型的可变属性具体值。
4.根据权利要3所述的基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,所述方法还包括:
通过FreeType开源库函数FT_Get_MM_Var获得给定字体的变体描述符,所述变体描述符包括字体命名样式;
根据FreeType开源库函数FT_Set_Var_Design_Coordinates将可变字重属性赋值给所述字体命名样式,得到平滑过渡的字重。
5.根据权利要1所述的基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,所述根据所述文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理获得具有纹理属性设置的文本块还包括:
获取字符数组,通过所述文本块文本纹理绘制函数将字符码转换为字形索引,根据外观对象装载所述字形索引,获得转换后的字符位图;
所述转换后的字符位图,用来改变其文本、颜色属性。
6.根据权利要5所述的基于FreeType在汽车仪表HMI中实现可变字体方法,其特征在于,所述方法还包括:
将所述字符位图转换为点阵数据流,所述点阵数据用于直接绘制到显示设备,或者将所述点阵数据流存放到自定义缓冲器中并基于所述缓冲器创建新的文本纹理,将获得的纹理属性设置到原有的文本块中。
7.一种基于FreeType在汽车仪表HMI中实现可变字体装置,其特征在于,包括:
处理模块、接口模块;
所述处理模块,用于根据FreeType开源库配置的库环境建立仪表工程,所述FreeType开源库包括文本块文本纹理绘制函数;在仪表工程中重新实现所述文本块文本纹理函数,并根据所述文本块文本纹理绘制函数对可变字体TTF文件进行渲染处理,获得具有纹理属性设置的文本块;
所述接口模块,用于通过属性接口控制所述具有纹理属性设置的文本块,得到输出结果,所述属性接口用以文本字重、字高、字宽的属性设置。
8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一种可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的校验码生成方法对应的操作。
9.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任一所述的校验码生成方法。
10.一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-6中任一所述的校验码生成方法对应的操作。
CN202111543994.8A 2021-12-16 2021-12-16 一种基于FreeType在汽车仪表HMI中实现可变字体方法 Pending CN116341490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111543994.8A CN116341490A (zh) 2021-12-16 2021-12-16 一种基于FreeType在汽车仪表HMI中实现可变字体方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111543994.8A CN116341490A (zh) 2021-12-16 2021-12-16 一种基于FreeType在汽车仪表HMI中实现可变字体方法

Publications (1)

Publication Number Publication Date
CN116341490A true CN116341490A (zh) 2023-06-27

Family

ID=86888087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111543994.8A Pending CN116341490A (zh) 2021-12-16 2021-12-16 一种基于FreeType在汽车仪表HMI中实现可变字体方法

Country Status (1)

Country Link
CN (1) CN116341490A (zh)

Similar Documents

Publication Publication Date Title
KR102523843B1 (ko) 폰트 렌더링 방법, 장치 및 컴퓨터 판독 가능 저장매체
US7924285B2 (en) Exposing various levels of text granularity for animation and other effects
US10789770B1 (en) Displaying rich text on 3D models
CN111221596B (zh) 字体渲染方法、装置及计算机可读存储介质
AU2005202722A1 (en) Common charting using shapes
US20070273706A1 (en) Texture mapping 2-D text properties to 3-D text
CN104298504A (zh) 基于FreeType字体引擎的实现字体绘制的方法
US7342585B2 (en) Use of an input overscaled bitmap to generate emboldened overscaled bitmap
CN107707965A (zh) 一种弹幕的生成方法和装置
KR20160019502A (ko) 동적 팔레트를 갖는 적층식 z 순서의 힌팅된 컬러 폰트
US10403040B2 (en) Vector graphics rendering techniques
US9881395B2 (en) Rendering multi-part glyphs
CN108961361B (zh) 生成特效文字图像的方法及系统、计算机设备
US10311060B2 (en) Glyph management in texture atlases
CN114820972A (zh) 等值线和/或等值面生成方法、系统、设备及存储介质
CN111324381A (zh) 开发系统、方法、装置、计算机设备及存储介质
CN112132941B (zh) 一种文字渲染方法、装置、设备及存储介质
CN116341490A (zh) 一种基于FreeType在汽车仪表HMI中实现可变字体方法
CN101957837B (zh) 一种笔划矢量字库的存取方法
CN112560397B (zh) 绘制方法、装置、终端设备及存储介质
CN111782158B (zh) 一种喷码设备点阵字体的生成方法及打印设备
Flanagan Canvas Pocket Reference: Scripted Graphics for HTML5
CN111240676A (zh) 一种生成骨架屏的代码的方法及装置
CN108897537A (zh) 文档显示方法、计算机可读介质和一种计算机
Maloney et al. Pattern Maps and Labels

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231221

Address after: No. 390, Wukang Road, Xuhui District, Shanghai 200031

Applicant after: Shanghai automotive industry (Group) Co.,Ltd.

Applicant after: SAIC Motor Corp.,Ltd.

Address before: Room 509, Building 1, No. 563, Songtao Road, Shanghai Free Trade Pilot Zone, Pudong New Area, Shanghai, 201203

Applicant before: SAIC Motor Corp.,Ltd.

CI02 Correction of invention patent application
CI02 Correction of invention patent application

Correction item: Applicant|Address|Applicant

Correct: Shanghai auto group Limited by Share Ltd.|Room 509, Building 1, No. 563, Songtao Road, Shanghai Free Trade Pilot Zone, Pudong New Area, Shanghai, 201203

False: Shanghai automobile industry (Group) Co., Ltd.|No. 390, Wukang Road, Xuhui District, Shanghai 200031|Shanghai auto group Limited by Share Ltd.

Number: 01-02

Volume: 40

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240123

Address after: 200030 Shanghai city Xuhui District Wukang Road No. 390

Applicant after: Shanghai automotive industry (Group) Co.,Ltd.

Country or region after: China

Applicant after: SAIC Motor Corp.,Ltd.

Address before: Room 509, Building 1, No. 563, Songtao Road, Shanghai Free Trade Pilot Zone, Pudong New Area, Shanghai, 201203

Applicant before: SAIC Motor Corp.,Ltd.

Country or region before: China