CN112258594A - 文字显示方法、装置、电子设备及计算机可读存储介质 - Google Patents

文字显示方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112258594A
CN112258594A CN202011144913.2A CN202011144913A CN112258594A CN 112258594 A CN112258594 A CN 112258594A CN 202011144913 A CN202011144913 A CN 202011144913A CN 112258594 A CN112258594 A CN 112258594A
Authority
CN
China
Prior art keywords
character
displayed
texture
text
display
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
CN202011144913.2A
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202011144913.2A priority Critical patent/CN112258594A/zh
Publication of CN112258594A publication Critical patent/CN112258594A/zh
Priority to EP21881658.5A priority patent/EP4187490A4/en
Priority to US18/245,056 priority patent/US20230367963A1/en
Priority to PCT/CN2021/111842 priority patent/WO2022083239A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Abstract

本公开实施例开公开了一种文字显示方法、装置、电子设备和计算机可读存储介质。其中该文字显示方法包括:接收显示参数;获取待显示文字;获取所述待显示文字的纹理;根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。上述方法通过接收显示参数,并将待显示文字的纹理通过所述显示参数绘制出来,解决了文字绘制控制不灵活的技术问题。

Description

文字显示方法、装置、电子设备及计算机可读存储介质
技术领域
本公开涉及文字排版领域,尤其涉及一种文字显示方法、装置、电子设备及计算机可读存储介质。
背景技术
伴随计算机技术不断发展,引发数字化信息的不断进步和移动终端设备的加速更新,平板电脑、手机、电子阅读器等移动终端设备的广泛普及,数字化阅读方式迅猛发展,使得通过手机等移动终端设备进行信息的获取和学习成为越来越多人的选择。文字也是人们获取信息最常见的一种方式,因此在移动终端上显示文字是移动终端的基本功能之一。
目前的移动终端在显示文字时,一般会以预选设置好的版式来显示。示例性的,如音乐应用中所显示的歌词,视频应用中所显示的字幕、歌词等等,一般均是使用固定的版式来展示,缺乏对在屏幕上显示的文字的版式进行灵活的控制,因此显示效果单一。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供一种文字显示方法,包括:
接收显示参数;
获取待显示文字;
获取所述待显示文字的纹理;
根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
第二方面,本公开实施例提供一种文字显示装置,包括:
参数接收模块,用于接收显示参数;
文字获取模块,用于获取待显示文字;
纹理获取模块,用于获取所述待显示文字的纹理;
显示模块,用于根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面中的任一所述文字显示方法。
第四方面,本公开实施例提供一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第一方面中的任一所述文字显示方法。
第五方面,本公开实施例提供一种文字资源包的生成方法,包括如上述第一方面中所述的文字显示方法。
本公开实施例开公开了一种文字显示方法、装置、电子设备和计算机可读存储介质。其中该文字显示方法包括:接收显示参数;获取待显示文字;获取所述待显示文字的纹理;根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。上述方法通过接收显示参数,并将待显示的文字的纹理通过所述显示参数绘制出来,解决了现有技术中的文字绘制控制不灵活的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的文字显示方法的流程示意图;
图2为本公开实施例提供的文字显示方法中获取待显示文字的流程示意图;
图3a为本公开实施例中文字纹理图集的生成步骤示意图;
图3b为本公开实施例中生成所述文字纹理图集中的纹理的过程的示意图;
图4为本公开实施例提供的文字显示方法中显示待显示文字的流程示意图;
图5为本公开实施例提供的文字显示方法中确定是否换行显示的流程示意图;
图6a为本公开实施例提供的文字显示方法中计算待显示文字行的宽度的流程示意图;
图6b为本公开实施例中的第一距离的示意图;
图6c为本公开实施例中的待显示的文字在屏幕中第一位置的示意图;
图7为本公开实施例中将所述待显示文字行的宽度与所述行宽度进行比较的流程示意图;
图8a为本公开实施例中确定所述待显示文字的纹理在所述屏幕上的显示位置的流程示意图;
图8b为本公开实施例中在不换行的情况下计算显示位置的示意图;
图8c为本公开实施例中在换行的情况下计算显示位置的示意图;
图9a-9b为本公开实施例中竖向排版的换行和不换行的示意图;
图10为本公开实施例的应用场景示意图;
图11为本公开实施例提供的文字显示装置的实施例的结构示意图;
图12为根据本公开实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例提供的文字显示方法实施例的流程图,本实施例提供的该文字显示方法可以由文字显示装置来执行,该文字显示装置可以实现为软件,或者硬件,或者实现为软件和硬件的组合,该文字显示装置可以集成设置在文字显示系统中的终端设备中,比如文字显示服务器或者文字显示终端设备中。该文字显示装置也可以单独设置为一个终端设备,用于实现本公开各种实施例提供的功能。如图1所示,该方法包括如下步骤:
步骤S101,接收显示参数;
可选的,本公开中的显示参数可以包括:文字在屏幕中的初始原点、行宽度、文字间距、行间距以及对齐方式中的一个或多个。
可选的,所述显示参数可以由用户输入。
示例性的,文字显示装置可以通过第一交互方式接收所述初始原点,如通过接收用户点击屏幕所产生的触控信号来确定所述初始原点的坐标,用户点击屏幕的位置的坐标即可以被确定为所述初始原点的坐标。所述初始原点为第一个文字在所述屏幕中的原点。
示例性的,可以通过第二交互方式接收所述行宽度、文字间距、行间距。例如,文字显示装置可以通过输入框接收用户输入的行宽度、文字间距、行间距的具体值等。
示例性的,文字显示装置可以通过第三交互方式接收所述对齐方式,例如,文字显示装置可以通过下拉菜单或者选择按钮选择对齐方式。
可以理解的,上述交互方式仅为举例,本公开对交互方式并不限制。上述显示参数也仅为举例,并不够成对本公开的限制。
可以理解的,还可以设置上述显示参数的默认参数值,当用户没有输入所述显示参数时,文字显示装置将默认参数值设置为显示参数。
步骤S102,获取待显示文字;
可选的,如图2所示,所述步骤S102包括:
步骤S201,获取待显示的文本;
步骤S202,对所述待显示的文本中的文字进行拆分得到至少一个所述待显示的文字。
其中所述待显示的文本可以是任何文本,示例性的,终端设备可以播放各种多媒体文件,例如,音频文件或者视频文件。所述待显示的文本相应地可以包括用户输入的歌词文件、字幕文件等等。示例性的,文字显示装置可以对所述文本中的文字使用UTF-8进行编码,通过UTF-8编码可以将所述文本中的文字拆分并按照顺序进行索引。示例性的,文字显示装置将所述待显示的文本中的文字按照顺序放入索引表中,其中所述待显示的文本中的文字还可以包括文本中的标点符号或其他符号。
可选的,所述步骤S102还可以包括:
接收用户输入的文字;
将接收到的输入文字确定为所述待显示文字。
在该实施例中,终端设备通过人机交互接口或设备接收用户输入的文字,并将接收到的输入文字作为待显示文字。示例性的,终端设备接收用户通过键盘输入的文字,并将所述输入文字确定为待显示文字。可以理解的,上述键盘仅仅是举例,任何其他输入方式,如通过触摸屏输入、通过语音识别等都可以应用到本公开中来,在此不再赘述。
步骤S103,获取所述待显示文字的纹理;
所述纹理为待显示文字图案的颜色和透明度的排列方式,可以通过将纹理渲染到屏幕上来实现文字的显示。
可选的,所述步骤S103包括:
获取文字纹理图集;以及
从所述文字纹理图集中获取所述待显示文字的纹理。
其中,所述文字纹理图集为一个保存了文字的纹理的文件,所述文字的纹理为按照预设的标准生成的纹理图。在该实施例中,所述纹理图集中保存了一个或多个文字的纹理图,在得到待显示文字之后,文字显示装置在所述纹理图集中查找所述待显示文字的纹理图。
可选的,在所述从所述文字纹理图集中获取所述待显示文字的纹理之前,文字显示装置还可以执行的操作包括:获取文字映射关系表。其中,所述文字映射关系表包括文字和所述文字的纹理在所述文字纹理图集中的位置的映射关系。
在此基础上,从所述文字纹理图集中获取所述待显示文字的纹理,包括:在所述文字映射关系表中查询所述待显示文字的纹理在所述文字纹理图集中的位置;以及据所述位置从所述文字纹理图集中获取所述待显示文字的纹理。
在上述可选实施例中,文字显示装置将所述待显示文字转换为文字映射关系表中的键所对应的编码形式,其中所述的键为所述待显示文字在所述文字映射关系表中的唯一标识,如将待显示文字转换为Unicode编码形式,之后查询该Unicode编码所对应的纹理位置,并根据该纹理位置从所述文字纹理图集中获取到所述待显示的文字的纹理。
可选的,如图3a所示,所述文字纹理图集通过以下步骤生成:
步骤S301,获取单个文字;
步骤S302,响应于所述文字纹理图集中不存在所述单个文字,根据所述单个文字的字体属性生成所述单个文字的纹理;
步骤S303,将所述纹理绘制于所述文字纹理图集中。
可选的,在步骤S301中,首选获取第一文本,示例性的,所述第一文本为步骤S201中的待显示的文本,文字显示装置从所述第一文本中拆分出单个文字,之后将单个文字按照其在第一文本中的顺序存入索引列表中。在另一个实施例中,步骤S301还可以包括获取用户输入的文字,将获取到的文字按照获取顺序存入索引列表中。
可选的,在步骤S302中,文字显示装置从所述索引列表中按顺序取出单个文字,在文字映射关系表中查询该映射关系表中是否已经包括了所述单个文字,如果已经包括了所述单个文字,则继续从所述索引列表中获取下一个单个文字,继续在所述文字映射关系表中查询,直至所述单个文字不在所述文字映射关系表中。其中所述文字映射关系表保存单个文字与文字的纹理图集中的纹理的对应关系,示例性的,所述文字映射关系表中的每一项为一个键值对,其中的键为单个文字的Unicode编码,该键对应的值为单个文字的纹理在所述纹理图集中的位置。
可选在,在所述步骤S302中,将所述单个文字转换成Unicode编码形式,并在文字映射关系表中查找是否存在与所述单个文字的Unicode编码对应的键,如果存在,则继续从索引列表中获取下一个单个文字,继续上述转换和查询的过程;如果没有,则表示所述文字纹理图集中不存在所述单个文字的纹理,此时根据预先设置的字体属性生成所述单个文字的纹理,其中所述字体属性包括字体大小、字体样式等等。
可选的,在步骤S303中,将所述纹理绘制到文字纹理图集画布上。可选的,所述将所述纹理绘制到文字纹理图集画布上为绘制到所述画布的第一个空位上,如果画布上当前行没有空位,则换行之后进行绘制,其中所述空位表示画布中能够容纳一个文字的位置。
进一步的,所述文字纹理图集的生成步骤还包括:
获取所述单个文字的纹理在所述纹理图集中的纹理位置;
确定所述单个文字与所述纹理位置的映射关系;
根据所述映射关系,更新所述文字映射关系表。
可选的,所述纹理位置由纹理在文字纹理图集中的纹理原点坐标以及纹理的外边框的四个顶点的坐标表示;之后,确定所述单个文字与所述纹理位置的对应关系,如生成以所述单个文字的Unicode编码为键、以所述纹理位置为值的键值对;将所述映射关系更新到所述文字映射关系表中作为所述关系表中的一个表项。重复上述操作直至遍历到所述索引表中的所有文字,使得每个第一文本中的文字在所述文字纹理图集中均能找到对应的文字纹理。
可以理解的,当遇到新的文字时,所述文字纹理图集可以随时使用上述步骤进行更新,在此不再赘述。
图3b为生成所述文字纹理图集中的纹理的过程的一个示例。如图3b所示,第一文本306中包括“我是一名小学生,你是一名中学生”这些单个文字,当遍历到“小”字时,此时将“小”转换成对应的Unicode编码5C0F,查询文字映射关系表307,文字映射关系表307中没有“小”的Unicode编码,此时根据预设的字体属性生成“小”字的纹理308,之后将“小”的纹理绘制在文字纹理图集309中的第一个空位上,并获取该纹理的在309中的位置:原点:(24,47);外框:[(24,24),(47,24),(24,47),(47,47)]。之后将“小”的Unicode编码5C0F和“小”在文字纹理图集中的位置作为一个键值对插入所述文字映射关系表307中。文字显示装置继续遍历文本中的文字,当遍历到文本306中的第二行的“是”字时,由于文字映射关系表307中已经包括了“是”字的纹理位置信息,因此在遍历到第二行的“是”字时,直接跳过“是”字继续遍历下一个字,例如,“一”字。当所述文本中的每一个字都被遍历到之后,所述文本中的每一个字的纹理都被绘制到所述文字纹理图集中,并且相同的纹理只绘制一次。可以理解的,可以针对不同的第一文本生成不同的文字纹理图集,或者可以针对所有的第一文本仅生成一份文字纹理图集,或者为了减少每次加载的文字纹理图集的大小,可以将文字纹理图集分成多个子图集,在此不再赘述。可以理解的,本示例中将纹理原点都设置为其外边框的左下顶点,而在实际使用中,纹理原点可以设置为文字纹理图集中的任何点,本公开对此不做限制。
在获取所述待显示文字的纹理时,以图3b中的例子为例,当前待显示文字为“名”,则首先将“名”转换成其对应的Unicode编码540D,在文字映射关系表中查询编码7231所对应的纹理位置为:纹理原点:(0,47);外框:[(0,24),(23,24),(0,47),(23,47)],通过该纹理位置从文字纹理图集309中获取到对应的“名”字的纹理。
在一个实施例中,在从文字纹理图集中获取文字纹理的时候,存在获取不到所述待显示文字的纹理的可能,如在生成所述文字纹理图集时,所述第一文本不是待显示文本,此时可能存在所述文字纹理图集中并未包括待显示文本中所有文字的情况。此时,可以按照S301-S305中的步骤先在文字纹理图集中添加待显示文字的纹理,之后再执行所述步骤S104获取所述纹理,在此不再赘述。
步骤S104,根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
可选的,如图4所示,所述步骤S105包括:
步骤S401,根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理;以及
步骤S402,根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
步骤S403,根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。
由于待显示文字可能包括多个,屏幕上一行所能显示的文字的数量是有限的,因此当确定待显示文字的显示位置时,需要判断是否换行。
可选的,所述显示参数中包括行宽度MaxWidth,所述行宽度定义了一个文字行的最大宽度。此时,如图5所示,所述步骤S401包括:
步骤S501,根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度;
步骤S502,将所述待显示文字行的宽度与所述行宽度进行比较;
步骤S503,根据所述比较结果确定是否换行显示所述待显示文字的纹理。
其中,所述待显示文字行的宽度为预判宽度,即根据待显示文字的纹理的属性如纹理大小等加上所述待显示文字之前的文字的纹理的属性,来计算加上所述待显示文字之后的待显示文字行的宽度。在得到所述待显示文字行的宽度之后,比较所述待显示文字行的宽度与所述行宽度的大小,根据比较结果确定是否进行换行处理。
可选的,如图6a所示,所述步骤S501包括:
步骤S601,计算所述待显示文字的纹理的第一边框到所述待显示文字的纹理原点的第一距离;其中,所述纹理原点是所述待显示文字的纹理在纹理图集中的原点;
步骤S602,根据所述待显示文字之前的文字的纹理在屏幕中的原点、文字的大小以及文字的间距计算所述待显示文字的纹理在屏幕中的原点;
步骤S603,根据所述待显示文字的纹理在屏幕中的原点和所述第一距离计算第一位置,其中所述第一位置包括所述待显示的文字的纹理的所述第一边框在所述屏幕中的位置,所述第一位置用于表示所述待显示文字行的宽度。
在该可选实施例中所述待显示文字的纹理的属性包括纹理原点位置以及边框四个顶点的位置等,所述第一边框为所述待显示文字的纹理的右边框。
为了方便描述,记所述待显示文字为屏幕中的第i个文字,Ai为所述待显示文字的纹理在所述文字纹理图集中的纹理原点位置,
Figure BDA0002739364180000071
为所述待显示文字的纹理在所述文字纹理图集中的外框的位置,其中包含了top,bottom,left,right四条边框的位置。
在上述步骤S601中,计算所述待显示文字的纹理的右边框到所述待显示文字的纹理原点的第一距离,即所述第一距离为L1,则:
Figure BDA0002739364180000072
其中
Figure BDA0002739364180000073
表示纹理的右边框的位置x轴坐标坐标,Ai.x表示纹理原点的x轴坐标。如图6b所示为L1的示意图,在该示例中,为了后续描述,所述纹理原点为纹理边框的左下顶点,而实际上该原点的位置可以设置为纹理图集中的任何点,本公开在此不做限制。
可选的,在步骤S602中,记所述待显示文字的纹理在所述屏幕中的原点为Oi,所述待显示文字之前的文字在屏幕中的原点为Oi-1,文字的大小为fontSize,文字的间距为letterSpacing,则根据以下公式计算Oi
Oi.x=Oi-1.x+fontSize+letterSpacing
在步骤S503中,计算所述待显示文字的纹理被绘制到所述屏幕中之后,所述纹理的右边框在所述屏幕中的位置。记所述待显示文字的纹理在所述屏幕中的原点为Oi,在屏幕中的右边框为
Figure BDA0002739364180000074
则:
Figure BDA0002739364180000075
由此,可以进行预计算,计算出如果将所述待显示文字绘制到屏幕上、其右边框的位置,
Figure BDA0002739364180000076
的位置如图6c中所示。即所述第一位置即表示所述待显示文字行的宽度。
可选的,如图7所示,所述步骤502包括:
步骤S701,根据所述待显示文字行的首字的纹理在所述屏幕中的原点以及行宽度计算所述待显示文字行的第一边界的位置;
步骤S702,如果所述第一位置超过所述第一边界的位置,则所述待显示文字行的宽度大于所述行宽度;
步骤S703,如果所述第一位置未超过所述第一边界的位置,则所述待显示文字行的宽度不大于所述行宽度。
在步骤S701中,根据所述待显示文字行的首字的纹理在屏幕中的原点以及所述行宽度MaxWidth计算所述待显示行的第一边界位置,所述第一边界位置表示所述待显示文字行在屏幕中的边界,在该可选实施例中,所述第一边界表示所述待显示文字行最右端的位置。可以理解的,该步骤可以在文字行的首字,即第一个文字的原点被确定出来之后就执行以计算出所述文字行最右端的位置,之后在未换行的情况下,可以将该位置作为一个常数存储。记所述待显示文字行的首字的索引为c,则该首字的原点的坐标的x轴坐标为Oc.x,记所述待显示文字行最右端的位置为line.x,则:
line.x=Oc.x+MaxWidth (3)
通常情况下,所述显示参数中包括用户给定的初始原点,并将初始原点作为第一个待显示文字的纹理在所述屏幕中的原点位置,记该初始原点的坐标为O0=(x0,y0),则Oc.x=x0,显示参数中的行宽度为MaxWidth,因此在这种情况下:
line.x=x0+MaxWidth (4)
如果所述纹理原点没有设置在所述纹理的左边框上,则需要先计算一个偏移值,之后加上MaxWidth作为line.x,此时:
Figure BDA0002739364180000081
其中所述
Figure BDA0002739364180000082
即为所述偏移值,其表示在纹理图集中,纹理原点到纹理的左边框的距离。
为了方便讨论,后续将以(4)的情况作为示例来讨论。
在上述步骤S702和S703中,通过比较(2)和(4)的大小即可判断如果在屏幕中绘制所述待显示文字的纹理,是否会超出文字行的行宽,即判断:
Figure BDA0002739364180000083
是否成立,如果成立,则绘制所述待显示文字之后的文字行宽度将超过设置的行宽度;如果不成立,则绘制所述待显示文字之后的行宽度不超过设置的行宽度。
在上述步骤中,使用了比较边界位置的方式来对待显示文字行的宽度与所述行宽度进行比较。可选的,还可以使用直接比较待显示文字行的宽度和所述行宽度的方式来得到比较结果。此时同样可以使用上述的计算过程计算出待显示文字行的右边框位置,之后使用初始原点的x轴坐标x0和所述右边框的位置
Figure BDA0002739364180000084
计算出待显示文字行的实际宽度:
Figure BDA0002739364180000085
之后直接比较
Figure BDA0002739364180000086
和MaxWidth的大小即可。即判断
Figure BDA0002739364180000087
是否成立,如果成立,则绘制所述待显示文字之后的文字行宽度将超过设置的行宽度;如果不成立,则绘制所述待显示文字之后的行宽度不超过设置的行宽度。
可选的,所述步骤503包括:
如果所述待显示文字行的宽度不大于所述行宽度,则确定非换行显示所述待显示文字的纹理;
如果所述待显示文字行的宽度大于所述行宽度,则确定换行显示所述待显示文字的纹理。
即当所述待显示文字行的宽度不大于所述行宽度,则通过不换行的方式在所述屏幕上绘制所述待显示文字的纹理;当所述待显示文字行的宽度大于所述行宽度,则通过换行的方式在所述屏幕上绘制所述待显示文字的纹理。
可选的,所述显示参数包括文字间距、初始原点位置以及行间距,则如图8a所示,所述步骤S402包括:
步骤S801,如果确定非换行显示,则根据待显示文字的前一个文字的显示位置、所述文字间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置;
步骤S802,如果确定换行显示,则根据待显示文字的前一个文字的显示位置、所述初始原点位置、所述行间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置。
在上述步骤S801中,如果确定非换行显示,则根据所述显示参数确定待显示文字的纹理的在屏幕中的显示位置。在该步骤中,由于所述待显示的文字之前的文字在屏幕中的显示位置是已知的,则通过显示参数和文字属性可以计算出所述待显示文字的纹理的显示位置。示例性的,所述的显示位置为所述待显示文字的纹理在屏幕中的原点的位置,所述文字的属性为文字的大小fontSize,则所述显示位置为:
Figure BDA0002739364180000091
其中Oi.x和Oi.y分别表示当前待显示的文字的纹理在屏幕中的原点的xy坐标;Oi -1.x和Oi-1.y为上一个文字的纹理在屏幕中的原点的xy坐标,fontSize为上一个文字的纹理的大小,示例性的,以图3b中的示例为例,fontSize均为24,即文字纹理图集中的纹理大小为24*24像素大小。可以理解的,此处的fontSize还可以表示其他符号的大小,如标点符号或其他特殊符号等,其他符号的纹理的大小可以与所述文字的纹理的大小相同或者不同,在此不做限制;其中letterSpacing为显示参数中的文字间距。图8b所述为不换行的情况下计算显示位置的实例,如图8b所示,由于位于同一文字行,利用上述公式(6)中的计算方法可以通过上一文字的纹理在屏幕中的原点、文字的大小以及文字间距计算出所述待显示文字的纹理的显示位置。
在上述步骤S802中,如果确定换行显示,则需要进行换行操作。由于需要进行换行操作,所以Oi.x可以直接设置为初始原点位置的x坐标,即x0,而Oi.y则可以通过在上一待显示文字的原点的y坐标的基础上加上字体大小和行间距得到,即对于需要换行的情况,Oi通过以下方式计算:
Figure BDA0002739364180000092
其中,lineSpacing为显示参数中的行间距。如图8c所示为换行的情况下计算显示位置的实例,如图8c所示,由于需要换行,利用上述公式(7)中的计算方法可以通过上一文字的纹理的显示位置、初始原点位置、字体大小以及行间距计算出换行之后所述待显示文字的纹理的显示位置。
在根据上述公式(6)或(7)得到所述待显示的文字的纹理的显示位置之后,在步骤S403,根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。示例性的,所述显示位置为所述待显示文字在屏幕中的原点位置,所述在所述屏幕上显示所述待显示文字的纹理为将所述带显示文字的纹理原点映射到所述待显示文字在屏幕中的原点位置,以在所述屏幕中显示所述待显示文字的纹理。可选的,所述显示参数中还包括对齐方式,此时所述步骤S104还包括:
根据所述显示参数中的对齐方式确定显示位置的偏移量;
根据所述显示位置和所述显示位置的偏移量显示所述待显示的文字的纹理。
在上述实施例中,默认为左对齐的方式,也即是说如果对齐方式设置为左对齐,则所述偏移量为0,直接使用所述显示位置显示所述待显示文字的纹理。如果是其他对齐方式,则在左对齐的基础上计算左对齐到其他对齐方式的偏移量以对待显示文字行进行调整;具体的,如果对齐方式为右对齐,计算待显示文字行的宽度和MaxWidth的差值,之后整行向右移动该差值的距离即得到右对齐的待显示文字行;如果对齐方式是两端对齐,同样计算待显示文字行的宽度和MaxWidth的差值,之后将该差值平均到每个文字间隔中,以使待显示文字行的宽度等于MaxWidth;如果对齐方式为中间对齐,把待显示文字行的中心点调整到x0和line.x的中心处。在需要调整对齐的情况下,还需要记录每一行待显示文字的行首索引,以确定调整文字行的范围。示例性的,从所述显示参数中获取初始原点的位置之后,记录行首索引c=0,之后每次遇到换行操作时,更新行首索引c=i,以便在调整对齐的时候计算文字行的长度。
通过上述文字显示方法,接收文字显示参数之后,获取待显示的文字并获取其对应纹理,以将所述纹理按照显示参数显示到屏幕的对应位置上,由此用户可以通过文字显示参数灵活的控制文字的显示以形成各种自定义的文字排版效果。
可以理解的,上述实施例中以横向排版为例说明了文字显示参数如何控制文字的排版。实际上,本公开中的技术方案同样可以以竖排版的形式实现,如图9a和9b所示,为一个竖向排版的示意图,其中9a为非换列的情况,9b为换列的框。此时需要将行间距替换成列间距,待显示文字行替换为待显示文字列,待显示文字行的宽度替换为待显示文字列的长度等等,行宽度替换为列长度。在计算的时候每一列的待显示文字的x轴坐标是不发生变化的,仅变化y轴坐标;只有在换列的时候,待显示文字的x轴坐标才发生变化;换列的逻辑与上述换行的逻辑类似,在此不再赘述。
可以理解的,在上述实施例中,所述待显示文字的显示方式可以是获取一个待显示文字即显示一个待显示文字,示例性的,在获取到待显示文本或者通过输入信号得到待显示文字时,得到一个文字就显示一个文字;或者在上述实施例中,所述待显示文字的显示方式可以是在确定了所有待显示文字的位置之后,再将所述待显示文字显示在屏幕上,如获取到待显示文本中的所有待显示文字,通过上述步骤确定出所有待显示文字在屏幕中的显示原点的阵列,之后将所有待显示文字一次显示在所述屏幕中。图10为本公开的一个应用场景示意图。如图10所示为在移动终端中使用上述文字显示方法进行显示的示意图,在使用时,用户输入“我是一名小学生,你是一名中学生”或者移动终端接收包括有“我是一名小学生,你是一名中学生”文字的文本,通过上述实施例中的方法将其显示在移动终端的屏幕上。
上述实施例开公开了一种文字显示方法,包括:接收显示参数;获取待显示文字;获取所述待显示文字的纹理;根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。上述方法通过接收显示参数,并将待显示文字的纹理通过所述显示参数绘制出来,解决了文字绘制控制不灵活的技术问题。
在上文中,虽然按照上述的顺序描述了上述方法实施例中的各个步骤,本领域技术人员应清楚,本公开实施例中的步骤并不必然按照上述顺序执行,其也可以倒序、并行、交叉等其他顺序执行,而且,在上述步骤的基础上,本领域技术人员也可以再加入其他步骤,这些明显变型或等同替换的方式也应包含在本公开的保护范围之内,在此不再赘述。
图11为本公开实施例提供的文字显示装置实施例的结构示意图,如图11所示,该装置1100包括:参数接收模块1101、文字获取模块1102、纹理获取模块1103和显示模块1104。其中,
参数接收模块1101,用于接收显示参数;
文字获取模块1102,用于获取待显示文字;
纹理获取模块1103,用于获取所述待显示文字的纹理;
显示模块1104,用于根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
进一步的,所述文字获取模块1102,还用于:
获取待显示的文本;
对所述待显示的文本中的文字进行拆分得到至少一个所述待显示文字。
进一步的,所述纹理获取模块1103,还用于:
获取文字纹理图集;以及
从所述文字纹理图集中获取所述待显示文字的纹理。
进一步的,所述文字显示装置1100还包括:
关系表获取模块,用于获取文字映射关系表;
所述纹理获取模块1103,还用于:
在所述文字映射关系表中查询所述待显示文字的纹理在所述文字纹理图集中的位置;以及
根据所述位置从所述文字纹理图集中获取所述待显示文字的纹理,
其中,所述文字映射关系表包括文字和所述文字的纹理在所述文字纹理图集中的位置的映射关系。
进一步的,所述文字纹理图集通过以下步骤生成:
获取单个文字;
响应于所述文字纹理图集中不存在所述单个文字,根据所述单个文字的字体属性生成所述单个文字的纹理;以及
将所述纹理绘制于所述文字纹理图集中。
进一步的,所述文字纹理图集的生成步骤还包括:
获取所述单个文字的纹理在所述纹理图集中的纹理位置;
确定所述单个文字与所述纹理位置的映射关系;
根据所述映射关系,更新所述文字映射关系表。
进一步的,所述显示模块1104还用于:
根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理;以及
根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。
进一步的,所述显示参数包括行宽度,所述显示模块1104还用于:
根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度;
将所述待显示文字行的宽度与所述行宽度进行比较;
根据所述比较结果确定是否换行显示所述待显示文字的纹理。
进一步的,所述显示模块1104还用于:
如果所述待显示文字行的宽度不大于所述行宽度,则确定非换行显示所述待显示文字的纹理;
如果所述待显示文字行的宽度大于所述行宽度,则确定换行显示所述待显示文字的纹理。
进一步的,所述显示参数包括文字间距、初始原点位置以及行间距,所述显示模块1104还用于:
如果确定非换行显示,则根据待显示文字的前一个文字的显示位置、所述文字间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
如果确定换行显示,则根据待显示文字的前一个文字的显示位置、所述初始原点位置、所述行间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置。
进一步的,所述显示模块1104还用于:
计算所述待显示文字的纹理的第一边框到所述待显示文字的纹理原点的第一距离;其中,所述纹理原点是所述待显示文字的纹理在纹理图集中的原点;
根据所述待显示文字之前的文字的纹理在屏幕中的原点、文字的大小以及文字的间距计算所述待显示文字的纹理在屏幕中的原点;
根据所述待显示文字的纹理在屏幕中的原点和所述第一距离计算第一位置,其中所述第一位置包括所述待显示的文字的纹理的所述第一边框在所述屏幕中的位置,所述第一位置用于表示所述待显示文字行的宽度。
进一步的,所述显示模块1104还用于:
根据所述待显示文字行的首字的纹理在所述屏幕中的原点以及行宽度计算所述待显示文字行的第一边界的位置;
如果所述第一位置超过所述第一边界的位置,则所述待显示文字行的宽度大于所述行宽度;
如果所述第一位置未超过所述第一边界的位置,则所述待显示文字行的宽度不大于所述行宽度。
进一步的,所述显示参数包括对齐方式,所述显示模块1104还用于:
根据所述显示参数中的对齐方式确定显示位置的偏移量;
根据所述显示位置和所述偏移量在所述屏幕上显示所述待显示文字的纹理。
图11所示装置可以执行图1-图9b所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图9b所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图9b所示实施例中的描述,在此不再赘述。
本公开实施例还提供一种文字资源包的生成方法,所述文字资源包的生成方法包括上述实施例中的文字显示方法。所述文字资源包用于在终端设备中提供所述文字显示的功能。示例性的,在所述终端设备中运行客户端,所述文字资源包为所述客户端的资源包,所述客户端通过所述文字资源包能够提供上述实施例中所述的文字显示方法。
下面参考图12,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器)1200的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200可以包括处理装置(例如中央处理器、图形处理器等)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储装置1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有电子设备1200操作所需的各种程序和数据。处理装置1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
通常,以下装置可以连接至I/O接口1205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1206;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1207;包括例如磁带、硬盘等的存储装置1208;以及通信装置1209。通信装置1209可以允许电子设备1200与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备1200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1209从网络上被下载和安装,或者从存储装置1208被安装,或者从ROM 1202被安装。在该计算机程序被处理装置1201执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:执行上述任一实施例中所述的文字显示方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种文字显示方法,包括:
接收显示参数;
获取待显示文字;
获取所述待显示文字的纹理;
根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
进一步的,所述获取待显示文字包括:
获取待显示的文本;
对所述待显示的文本中的文字进行拆分得到至少一个所述待显示文字。
进一步的,所述获取所述待显示文字的纹理,包括:
获取文字纹理图集;以及
从所述文字纹理图集中获取所述待显示文字的纹理。
进一步的,所述方法还包括:
获取文字映射关系表;
所述从所述文字纹理图集中获取所述待显示文字的纹理,包括:
在所述文字映射关系表中查询所述待显示文字的纹理在所述文字纹理图集中的位置;以及
根据所述位置从所述文字纹理图集中获取所述待显示文字的纹理,
其中,所述文字映射关系表包括文字和所述文字的纹理在所述文字纹理图集中的位置的映射关系。
进一步的,所述文字纹理图集通过以下步骤生成:
获取单个文字;
响应于所述文字纹理图集中不存在所述单个文字,根据所述单个文字的字体属性生成所述单个文字的纹理;以及
将所述纹理绘制于所述文字纹理图集中。
进一步的,所述方法还包括:
获取所述单个文字的纹理在所述纹理图集中的纹理位置;
确定所述单个文字与所述纹理位置的映射关系;
根据所述映射关系,更新所述文字映射关系表。
进一步的,所述根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理,包括:
根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理;以及
根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。
进一步的,其特征在于,所述根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理,包括:
根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度;
将所述待显示文字行的宽度与所述行宽度进行比较;
根据所述比较结果确定是否换行显示所述待显示文字的纹理。
进一步的,所述根据所述比较结果确定是否换行显示所述待显示文字的纹理,包括:
如果所述待显示文字行的宽度不大于所述行宽度,则确定非换行显示所述待显示文字的纹理;
如果所述待显示文字行的宽度大于所述行宽度,则确定换行显示所述待显示文字的纹理。
进一步的,所述显示参数包括文字间距、初始原点位置以及行间距,所述根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置,包括:
如果确定非换行显示,则根据待显示文字的前一个文字的显示位置、所述文字间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
如果确定换行显示,则根据待显示文字的前一个文字的显示位置、所述初始原点位置、所述行间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置。
进一步的,,所述根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度,包括:
计算所述待显示文字的纹理的第一边框到所述待显示文字的纹理原点的第一距离,其中,所述纹理原点是所述待显示文字的纹理在纹理图集中的原点;
根据所述待显示文字之前的文字的纹理在屏幕中的原点、文字的大小以及文字的间距计算所述待显示文字的纹理在屏幕中的原点;
根据所述待显示文字的纹理在屏幕中的原点和所述第一距离计算第一位置,其中所述第一位置包括所述待显示的文字的纹理的所述第一边框在所述屏幕中的位置,所述第一位置用于表示所述待显示文字行的宽度。
进一步的,所述将所述待显示文字行的宽度与所述行宽度进行比较,包括:
根据所述待显示文字行的首字的纹理在所述屏幕中的原点以及行宽度计算所述待显示文字行的第一边界的位置;
如果所述第一位置超过所述第一边界的位置,则所述待显示文字行的宽度大于所述行宽度;
如果所述第一位置未超过所述第一边界的位置,则所述待显示文字行的宽度不大于所述行宽度。
进一步的,所述显示参数包括对齐方式,其特征在于,所述在屏幕上显示所述待显示文字的纹理,包括:
根据所述显示参数中的对齐方式确定显示位置的偏移量;
根据所述显示位置和所述偏移量在所述屏幕上显示所述待显示文字的纹理。根据本公开的一个或多个实施例,提供了一种文字显示装置,包括:
参数接收模块,用于接收显示参数;
文字获取模块,用于获取待显示文字;
纹理获取模块,用于获取所述待显示文字的纹理;
显示模块,用于根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
进一步的,所述文字获取模块,还用于:
获取待显示的文本;
对所述待显示的文本中的文字进行拆分得到至少一个所述待显示文字。
进一步的,所述纹理获取模块,还用于:
获取文字纹理图集;以及
从所述文字纹理图集中获取所述待显示文字的纹理。
进一步的,所述文字显示装置还包括:
关系表获取模块,用于获取文字映射关系表;
所述纹理获取模块,还用于:
在所述文字映射关系表中查询所述待显示文字的纹理在所述文字纹理图集中的位置;以及
根据所述位置从所述文字纹理图集中获取所述待显示文字的纹理,
其中,所述文字映射关系表包括文字和所述文字的纹理在所述文字纹理图集中的位置的映射关系。
进一步的,所述文字纹理图集通过以下步骤生成:
获取单个文字;
响应于所述文字纹理图集中不存在所述单个文字,根据所述单个文字的字体属性生成所述单个文字的纹理;以及
将所述纹理绘制于所述文字纹理图集中。
进一步的,所述文字纹理图集的生成步骤还包括:
获取所述单个文字的纹理在所述纹理图集中的纹理位置;
确定所述单个文字与所述纹理位置的映射关系;
根据所述映射关系,更新所述文字映射关系表。
进一步的,所述显示模块还用于:
根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理;以及
根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。
进一步的,所述显示参数包括行宽度,所述显示模块还用于:
根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度;
将所述待显示文字行的宽度与所述行宽度进行比较;
根据所述比较结果确定是否换行显示所述待显示文字的纹理。
进一步的,所述显示模块还用于:
如果所述待显示文字行的宽度不大于所述行宽度,则确定非换行显示所述待显示文字的纹理;
如果所述待显示文字行的宽度大于所述行宽度,则确定换行显示所述待显示文字的纹理。
进一步的,所述显示参数包括文字间距、初始原点位置以及行间距,所述显示模块还用于:
如果确定非换行显示,则根据待显示文字的前一个文字的显示位置、所述文字间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
如果确定换行显示,则根据待显示文字的前一个文字的显示位置、所述初始原点位置、所述行间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置。
进一步的,所述显示模块还用于:
计算所述待显示文字的纹理的第一边框到所述待显示文字的纹理原点的第一距离;其中,所述纹理原点是所述待显示文字的纹理在纹理图集中的原点;
根据所述待显示文字之前的文字的纹理在屏幕中的原点、文字的大小以及文字的间距计算所述待显示文字的纹理在屏幕中的原点;
根据所述待显示文字的纹理在屏幕中的原点和所述第一距离计算第一位置,其中所述第一位置包括所述待显示的文字的纹理的所述第一边框在所述屏幕中的位置,所述第一位置用于表示所述待显示文字行的宽度。
进一步的,所述显示模块还用于:
根据所述待显示文字行的首字的纹理在所述屏幕中的原点以及行宽度计算所述待显示文字行的第一边界的位置;
如果所述第一位置超过所述第一边界的位置,则所述待显示文字行的宽度大于所述行宽度;
如果所述第一位置未超过所述第一边界的位置,则所述待显示文字行的宽度不大于所述行宽度。
进一步的,所述显示参数包括对齐方式,所述显示模块还用于:
根据所述显示参数中的对齐方式确定显示位置的偏移量;
根据所述显示位置和所述偏移量在所述屏幕上显示所述待显示文字的纹理。
根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一所述文字显示方法。
根据本公开的一个或多个实施例,提供了一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述任一所述文字显示方法。
根据本公开的一个或多个实施例,提供了一种文字资源包的生成方法,包括上述实施所述的文字显示方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (17)

1.一种文字显示方法,其特征在于,包括:
接收显示参数;
获取待显示文字;
获取所述待显示文字的纹理;
根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
2.如权利要求1所述的文字显示方法,其特征在于,所述获取待显示文字包括:
获取待显示的文本;
对所述待显示的文本中的文字进行拆分得到至少一个所述待显示文字。
3.如权利要求1所述的文字显示方法,其特征在于,所述获取所述待显示文字的纹理,包括:
获取文字纹理图集;以及
从所述文字纹理图集中获取所述待显示文字的纹理。
4.如权利要求3所述的文字显示方法,其特征在于,所述方法还包括:
获取文字映射关系表;
所述从所述文字纹理图集中获取所述待显示文字的纹理,包括:
在所述文字映射关系表中查询所述待显示文字的纹理在所述文字纹理图集中的位置;以及
根据所述位置从所述文字纹理图集中获取所述待显示文字的纹理,
其中,所述文字映射关系表包括文字和所述文字的纹理在所述文字纹理图集中的位置的映射关系。
5.如权利要求4所述的文字显示方法,其特征在于,所述文字纹理图集通过以下步骤生成:
获取单个文字;
响应于所述文字纹理图集中不存在所述单个文字,根据所述单个文字的字体属性生成所述单个文字的纹理;以及
将所述纹理绘制于所述文字纹理图集中。
6.如权利要求5所述的文字显示方法,其特征在于,所述方法还包括:
获取所述单个文字的纹理在所述纹理图集中的纹理位置;
确定所述单个文字与所述纹理位置的映射关系;
根据所述映射关系,更新所述文字映射关系表。
7.如权利要求1所述的文字显示方法,其特征在于,所述根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理,包括:
根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理;以及
根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
根据所述显示位置,在所述屏幕上显示所述待显示文字的纹理。
8.如权利要求7所述的文字显示方法,所述显示参数包括行宽度,其特征在于,所述根据所述显示参数和所述待显示文字的纹理的属性,确定是否换行显示所述待显示文字的纹理,包括:
根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度;
将所述待显示文字行的宽度与所述行宽度进行比较;
根据所述比较结果确定是否换行显示所述待显示文字的纹理。
9.如权利要求8所述的文字显示方法,其特征在于,所述根据所述比较结果确定是否换行显示所述待显示文字的纹理,包括:
如果所述待显示文字行的宽度不大于所述行宽度,则确定非换行显示所述待显示文字的纹理;
如果所述待显示文字行的宽度大于所述行宽度,则确定换行显示所述待显示文字的纹理。
10.如权利要求7所述的文字显示方法,所述显示参数包括文字间距、初始原点位置以及行间距,所述根据与确定结果相对应的显示参数和所述待显示文字的纹理的属性,确定所述待显示文字的纹理在所述屏幕上的显示位置,包括:
如果确定非换行显示,则根据待显示文字的前一个文字的显示位置、所述文字间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置;以及
如果确定换行显示,则根据待显示文字的前一个文字的显示位置、所述初始原点位置、所述行间距以及所述待显示文字的纹理的属性确定所述待显示文字的纹理在所述屏幕上的显示位置。
11.如权利要求8所述的文字显示方法,其特征在于,所述根据所述待显示文字的纹理的属性和所述待显示文字之前的文字的纹理的属性,计算待显示文字行的宽度,包括:
计算所述待显示文字的纹理的第一边框到所述待显示文字的纹理原点的第一距离,其中,所述纹理原点是所述待显示文字的纹理在纹理图集中的原点;
根据所述待显示文字之前的文字的纹理在屏幕中的原点、文字的大小以及文字的间距计算所述待显示文字的纹理在屏幕中的原点;
根据所述待显示文字的纹理在屏幕中的原点和所述第一距离计算第一位置,其中所述第一位置包括所述待显示的文字的纹理的所述第一边框在所述屏幕中的位置,所述第一位置用于表示所述待显示文字行的宽度。
12.如权利要求11所述的文字显示方法,其特征在于,所述将所述待显示文字行的宽度与所述行宽度进行比较,包括:
根据所述待显示文字行的首字的纹理在所述屏幕中的原点以及行宽度计算所述待显示文字行的第一边界的位置;
如果所述第一位置超过所述第一边界的位置,则所述待显示文字行的宽度大于所述行宽度;
如果所述第一位置未超过所述第一边界的位置,则所述待显示文字行的宽度不大于所述行宽度。
13.如权利要求1所述的文字显示方法,所述显示参数包括对齐方式,其特征在于,所述在屏幕上显示所述待显示文字的纹理,包括:
根据所述显示参数中的对齐方式确定显示位置的偏移量;
根据所述显示位置和所述偏移量在所述屏幕上显示所述待显示文字的纹理。
14.一种文字显示装置,其特征在于,包括:
参数接收模块,用于接收显示参数;
文字获取模块,用于获取待显示文字;
纹理获取模块,用于获取所述待显示文字的纹理;
显示模块,用于根据所述显示参数和所述待显示文字的纹理的属性,在屏幕上显示所述待显示文字的纹理。
15.一种电子设备,包括:
存储器,用于存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,在所述计算机可读指令被执行时,使得所述电子设备实现根据权利要求1-13中任意一项所述的方法。
16.一种非暂态计算机可读存储介质,用于存储计算机可读指令,当所述计算机可读指令由计算机执行时,使得所述计算机执行权利要求1-13中任意一项所述的方法。
17.一种文字资源包的生成方法,包括如权利要求1-13中任意一项所述的方法。
CN202011144913.2A 2020-10-23 2020-10-23 文字显示方法、装置、电子设备及计算机可读存储介质 Pending CN112258594A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011144913.2A CN112258594A (zh) 2020-10-23 2020-10-23 文字显示方法、装置、电子设备及计算机可读存储介质
EP21881658.5A EP4187490A4 (en) 2020-10-23 2021-08-10 TEXT DISPLAY METHOD AND APPARATUS, ELECTRONIC DEVICE AND COMPUTER-READABLE STORAGE MEDIUM
US18/245,056 US20230367963A1 (en) 2020-10-23 2021-08-10 Character display method and apparatus, electronic device, and computer-readable storage medium
PCT/CN2021/111842 WO2022083239A1 (zh) 2020-10-23 2021-08-10 文字显示方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011144913.2A CN112258594A (zh) 2020-10-23 2020-10-23 文字显示方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN112258594A true CN112258594A (zh) 2021-01-22

Family

ID=74264969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011144913.2A Pending CN112258594A (zh) 2020-10-23 2020-10-23 文字显示方法、装置、电子设备及计算机可读存储介质

Country Status (4)

Country Link
US (1) US20230367963A1 (zh)
EP (1) EP4187490A4 (zh)
CN (1) CN112258594A (zh)
WO (1) WO2022083239A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022083239A1 (zh) * 2020-10-23 2022-04-28 北京字节跳动网络技术有限公司 文字显示方法、装置、电子设备及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483035A (zh) * 2009-01-12 2009-07-15 腾讯科技(深圳)有限公司 在图形界面上显示文字的方法和系统
CN103474081A (zh) * 2012-06-05 2013-12-25 广达电脑股份有限公司 文字显示方法与处理装置以及计算机程序产品
CN104346156A (zh) * 2013-08-05 2015-02-11 北大方正集团有限公司 显示文本块、文本块处理的方法和装置
CN105631486A (zh) * 2014-10-27 2016-06-01 深圳Tcl数字技术有限公司 图像文字识别方法及装置
CN108363792A (zh) * 2018-02-13 2018-08-03 广东欧珀移动通信有限公司 应用页面的链接生成方法、装置、存储介质及电子设备
CN110609981A (zh) * 2019-08-30 2019-12-24 北京金堤科技有限公司 文本处理方法以及装置、电子设备以及计算机可读存储介质
CN111062186A (zh) * 2019-12-06 2020-04-24 金蝶软件(中国)有限公司 文本处理方法、装置、计算机设备和存储介质
CN111209721A (zh) * 2018-11-16 2020-05-29 北京京东尚科信息技术有限公司 位图字体实现方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302438B1 (en) * 1997-07-18 2007-11-27 Tesseron Ltd. Method and system for flowing data to an arbitrary path defined by a page description language
US20070211062A1 (en) * 2006-03-13 2007-09-13 International Business Machines Corporation Methods and systems for rendering complex text using glyph identifiers in a presentation data stream
WO2011080872A1 (ja) * 2009-12-28 2011-07-07 パナソニック株式会社 表示する文章に応じた触覚を提示する文章表示装置、文章表示プログラム、及び文章表示方法
US8760451B2 (en) * 2011-06-30 2014-06-24 Google Inc. Rendering a text image using texture map character center encoding with character reference encoding
US20170249292A1 (en) * 2016-02-29 2017-08-31 Microsoft Technology Licensing, Llc Conditional determination of lookups in glyph processing
CN111105474B (zh) * 2019-12-19 2023-09-29 广州酷狗计算机科技有限公司 字体绘制方法、装置、计算机设备及计算机可读存储介质
CN111222301A (zh) * 2020-01-07 2020-06-02 天津麒麟信息技术有限公司 一种3d文字绘制方法、系统、可读存储介质及设备
CN112258594A (zh) * 2020-10-23 2021-01-22 北京字节跳动网络技术有限公司 文字显示方法、装置、电子设备及计算机可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483035A (zh) * 2009-01-12 2009-07-15 腾讯科技(深圳)有限公司 在图形界面上显示文字的方法和系统
CN103474081A (zh) * 2012-06-05 2013-12-25 广达电脑股份有限公司 文字显示方法与处理装置以及计算机程序产品
CN104346156A (zh) * 2013-08-05 2015-02-11 北大方正集团有限公司 显示文本块、文本块处理的方法和装置
CN105631486A (zh) * 2014-10-27 2016-06-01 深圳Tcl数字技术有限公司 图像文字识别方法及装置
CN108363792A (zh) * 2018-02-13 2018-08-03 广东欧珀移动通信有限公司 应用页面的链接生成方法、装置、存储介质及电子设备
CN111209721A (zh) * 2018-11-16 2020-05-29 北京京东尚科信息技术有限公司 位图字体实现方法、装置、电子设备及存储介质
CN110609981A (zh) * 2019-08-30 2019-12-24 北京金堤科技有限公司 文本处理方法以及装置、电子设备以及计算机可读存储介质
CN111062186A (zh) * 2019-12-06 2020-04-24 金蝶软件(中国)有限公司 文本处理方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022083239A1 (zh) * 2020-10-23 2022-04-28 北京字节跳动网络技术有限公司 文字显示方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP4187490A1 (en) 2023-05-31
WO2022083239A1 (zh) 2022-04-28
EP4187490A4 (en) 2024-02-07
US20230367963A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
CN109491742B (zh) 页面表格渲染方法及装置
CN112328927B (zh) 文档处理方法、装置、可读介质及电子设备
CN110766772A (zh) 基于Flutter跨平台海报制作方法装置介质和设备
CN111190520A (zh) 菜单项选择方法、装置、可读介质及电子设备
CN113238688B (zh) 表格展示方法、装置、设备及介质
CN112258594A (zh) 文字显示方法、装置、电子设备及计算机可读存储介质
CN115268904A (zh) 一种用户界面设计文件生成方法、装置、设备及介质
CN111949746A (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN109683726B (zh) 字符输入方法、装置、电子设备及存储介质
CN112256175B (zh) 文字显示方法、装置、电子设备及计算机可读存储介质
WO2022242441A1 (zh) 电子表格导入方法、装置、设备及介质
CN112256176B (zh) 文字显示方法、装置、电子设备以及计算机可读存储介质
CN113705190A (zh) 一种文本处理方法、装置及设备
CN111338827B (zh) 表格数据的粘贴方法、装置以及电子设备
CN112445478A (zh) 图形文件的处理方法、装置、设备及介质
CN113296771A (zh) 页面显示方法、装置、设备和计算机可读介质
CN110780898B (zh) 页面数据的升级方法、装置和电子设备
CN111753238A (zh) 数据映射方法、装置和电子设备
CN110825480A (zh) 图片的展示方法、装置、电子设备及计算机可读存储介质
CN110807164A (zh) 图像区域的自动调节方法、装置、电子设备及计算机可读存储介质
CN114327732B (zh) 页面配置方法、装置、电子设备和计算机可读介质
CN111405342B (zh) 富文本消息显示方法、装置、系统、介质和电子设备
CN116932531A (zh) 表格对齐方法、装置、电子设备和计算机可读介质
CN117709329A (zh) 内容对比方法、装置、可读介质及电子设备
CN117436428A (zh) 文档页面的展示方法、装置、电子设备和存储介质

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