CN109240628A - 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 - Google Patents
计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109240628A CN109240628A CN201810881700.4A CN201810881700A CN109240628A CN 109240628 A CN109240628 A CN 109240628A CN 201810881700 A CN201810881700 A CN 201810881700A CN 109240628 A CN109240628 A CN 109240628A
- Authority
- CN
- China
- Prior art keywords
- character
- display
- width
- calculating
- metamessage
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质,方法包括:将字符集划分成若干显示段;计算出与所述显示段一一对应的字符显示宽高元信息;得到要计算显示宽高的字符;计算所述字符位于哪个显示段;得到所述显示段的字符显示宽高元信息;使用所述字符显示宽高元信息计算得到所述字符的显示宽高。采用本发明,低计算力装置在计算字符、字符串等的显示宽高之时无需执行读取、解码矢量字体文件等极其耗费硬件资源的操作,从而降低了计算字符、字符串等的显示宽高所需要的计算能力需求和缓存空间需求,因此可适用于低计算力物联网装置。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质。
背景技术
本人于2018年6月30日向国家知识产权局提出了名为《显示界面的方法、装置及计算机可读存储介质》的申请,申请号:2018107027910。
随着互联网的发展,用户产生了许多远程显示的需求,但是目前流行的RDP(Remote Desktop Protocol,远程桌面协议)等现有技术是为“电脑、手机等高性能计算装置”设计的。用于物联网的低性能计算装置的计算性能远远低于电脑、手机等高性能计算装置。RDP等现有技术在用于低性能计算装置(作为RDP服务端)时至少存在如下问题:为了计算字符串的显示宽高,低性能的计算装置(RDP服务端)需要读取、解码矢量字体资源得到点阵位图数据、甚至会出现对字体位图进行旋转、缩放等各种复杂变换操作,进而计算得到字符串的显示宽高。低性能计算装置比如单片机往往不具有完成上述计算任务所需要的计算能力和RAM空间,并且低性能计算装置对整机功耗、硬件成本(影响因素包括RAM大小与MCU计算能力等)比较敏感。
综上,需要发明一种计算字符、字符串等的显示宽高的新方法,该新方法能够克服现有技术的上述缺陷、能够适用于低性能计算装置比如单片机。
发明内容
基于此,为解决传统技术中计算字符、字符串等的显示宽高的方法不适用于低性能计算装置的技术问题,特提出了一种计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质。
一种计算字符显示宽高的方法,包括:
将字符集划分成若干显示段;
计算出与所述显示段一一对应的字符显示宽高元信息;
得到要计算显示宽高的字符;
计算所述字符位于哪个显示段;
得到所述显示段的字符显示宽高元信息;
使用所述字符显示宽高元信息计算得到所述字符的显示宽高。
在一些实施例中,所述显示段的字符显示宽高元信息包含有:
与所述显示段中每个字符一一对应的单个字符的显示宽高信息;
或,所述显示段中显示宽度最宽的字符的显示宽度、与所述显示段中每个字符一一对应的单个字符的显示高度;
或,所述显示段中显示高度最高的字符的显示高度、与所述显示段中每个字符一一对应的单个字符的显示宽度;
或,所述显示段中显示宽度最宽的字符的显示宽度、显示高度最高的字符的显示高度。
一种计算字符串显示宽高的方法,包括:
得到要计算显示宽高的字符串,所述字符串由若干个字符组成;
使用上述所述的计算字符显示宽高的方法计算得到每个字符的显示宽高;
通过将所述字符串中字符的显示宽度相加求和,计算所述字符串的显示宽度;
使用所述字符串中显示高度最高的字符的显示高度作为所述字符串的显示高度。
一种计算字符串显示宽高的方法,包括:
得到要计算显示宽高的字符串,所述字符串由若干个字符组成;
使用上述所述的计算字符显示宽高的方法计算得到每个字符的显示宽高;
通过将所述字符串中字符的显示高度相加求和,计算所述字符串的显示高度;
使用所述字符串中显示宽度最宽的字符的显示宽度作为所述字符串的显示宽度。
在一些实施例中,所述方法基于高计算力的客户机与低计算力的服务机,包括:
将字符集划分成若干显示段,上述显示段的划分结果统一适用于高计算力的客户机与低计算力的服务机;
所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤在高计算力客户机上被执行;
所述得到要计算显示宽高的字符的步骤在低计算力服务机上被执行;
所述计算所述字符位于哪个显示段的步骤在低计算力服务机上被执行;
在所述得到所述显示段的字符显示宽高元信息的步骤之前,所述显示段的字符显示宽高元信息被存储在所述低计算力服务机内部;所述得到所述显示段的字符显示宽高元信息的步骤在低计算力服务机上被执行,且具体为:所述低计算力服务机读取被存储在其内部的所述显示段的字符显示宽高元信息;
所述使用所述字符显示宽高元信息计算得到所述字符的显示宽高的步骤在低计算力服务机上被执行。
在一些实施例中,在所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤中,使用如下方法来减少计算量:
从所述显示段中选择字符样本进行计算,而不是完整遍历并计算所述显示段中的全部字符。
一种计算字符、字符串等的显示宽高的装置,其特征在于,所述装置可以执行如上述任一项所述的方法,所述装置包括:
显示段规划模块,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段;
字符、字符串等的获取模块,用以获取待计算显示宽高的字符、字符串等;
字符显示宽高元信息存储模块,用以存储、读取所述字符显示宽高元信息;
主控模块,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高。
在一些实施例中,所述方法基于高计算力的客户机与低计算力的服务机,包括:
将字符集划分成若干显示段,上述显示段的划分结果统一适用于高计算力的客户机与低计算力的服务机;
所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤在高计算力客户机上被执行;
所述得到要计算显示宽高的字符的步骤在低计算力服务机上被执行;
所述计算所述字符位于哪个显示段的步骤在低计算力服务机上被执行;
所述得到所述显示段的字符显示宽高元信息的步骤在低计算力服务机上被执行,且具体为:所述低计算力服务机接收所述高计算力客户机利用通信技术发送的所述显示段的字符显示宽高元信息;
所述使用所述字符显示宽高元信息计算得到所述字符的显示宽高的步骤在低计算力服务机上被执行。
一种计算字符、字符串等的显示宽高的装置,其特征在于,所述装置可以执行如上述任一项所述的方法,所述装置包括:
显示段规划模块,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段;
字符、字符串等的获取模块,用以获取待计算显示宽高的字符、字符串等;
字符显示宽高元信息存储模块,用以存储、读取所述字符显示宽高元信息;
主控模块,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高;
字符显示宽高元信息接收模块,用以接收所述客户机发送的所述字符显示宽高元信息。
一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一项所述的方法。
实施本发明实施例,将具有如下有益效果:采用了上述方法和/或装置之后,低计算力装置在计算字符、字符串等的显示宽高之时无需执行读取、解码矢量字体文件等极其耗费硬件资源的操作,从而降低了计算字符、字符串等的显示宽高所需要的计算能力需求和缓存空间需求,因此可适用于低计算力物联网装置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得其他的实施例。
其中:
图1示出了第一实施例提供的计算字符显示宽高的方法的流程示意图;
图2示出了第二实施例提供的计算字符显示宽高的方法的流程示意图;
图3示出了一种计算字符、字符串等的显示宽高的装置的结构示意图;
图4示出了另一种计算字符、字符串等的显示宽高的装置的结构示意图;
具体实施方式
下文将参照附图详细描述示例性实施例,使得具有本领域的普通知识的人员可以容易地实现。为了清楚起见省略了对公知部分的描述,并且,在全文中类似的附图标记表示类似的元件。
示例性实施例可以体现为各种形式,而不限于此处给出的示例性实施例。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面详细的描述本质上仅是示例性的,并且不意在限制本发明和/或其应用和使用。在不脱离本公开的精神和范围的情况下,这里定义的一般原理可以被应用于其它实施例和应用。因此,本发明不局限于示出的实施例,而是符合与这里公开的原理和特征一致的最宽的范围。
本发明中,MCU指微控制单元,如:STM32系列/LPC系列。
通信技术,例如如Wi-Fi、蓝牙、红外、NFC、CDMA、GSM、ISM、ZigBee、Z-Wave、IPv4、IPv6、NB-IoT、LoRa、LPWAN、RS232、RS485等。
字符集,指ASCII、Unicode等。具体的字符集由实施者根据自己的产品功能进行自由选择、指定。
显示段,指字符集的一个子集。
在本发明中,如何将字符集划分为若干显示段是留给实施者的设计选择。由实施者根据自己的产品功能进行自由选择。
实施例1
为解决传统技术中计算字符、字符串等的显示宽高的方法不适用于低性能计算装置的技术问题,在本实施例中,特提出了一种计算字符、字符串等的显示宽高的方法。
所述方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上。该计算机系统可以是运行上述计算机程序的某种内存受限、计算性能低下、严格控制整机功耗的低性能计算装置,例如某种嵌入式设备等。
因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。
具体的,如图1所示,所述计算字符显示宽高的方法包括如下步骤S101-S106:
步骤S101,将字符集划分成若干显示段。
以实施者选择ASCII作为字符集为例。
众所周知,ASCII中只有0x20至0x7E为可显示、可打印的可见字符。因此可以将ASCII字符集划分为三个显示段,如下:0x00至0x1F;0x20至0x7E;0x7F。
步骤S102,计算出与所述显示段一一对应的字符显示宽高元信息。
根据上述对显示段的划分,由于0x00至0x1F段、0x7F段的字符不具有显示宽高,因此可以直接得出上述两个段的字符显示宽高元信息为:所有字符的宽高均为0。即与上述所述显示段一一对应的字符显示宽高元信息包括:所述显示段中显示宽度最宽的字符的显示宽度0、显示高度最高的字符的显示高度0。
接下来,选定字体,比如使用Arial字体;在后续绘制、打印字符时,也需要使用在此选定的同样字体。
利用freetype或类似功能的软件库计算0x20至0x7E段的每个字符的显示宽高,由于该显示段字符数目较小,因此可以将字符与字符的显示宽高一一对应,作为0x20至0x7E段的字符显示宽高元信息。即与上述所述显示段对应的字符显示宽高元信息包括:与所述显示段中每个字符一一对应的单个字符的显示宽高信息。
将上述计算得到的字符显示宽高元信息与所述显示段一一对应进行存储,以备后续使用。
上述计算出与所述显示段一一对应的字符显示宽高元信息的过程只需执行一次,后续在计算字符显示宽高时,直接使用已存储下来的所述信息。
步骤S103,得到要计算显示宽高的字符。
待计算显示宽高的字符包含在步骤S101所选定的字符集ASCII中。
步骤S104,计算所述字符位于哪个显示段。
比如要计算显示宽高的字符为小写字母a,其ASCII码为0x61,位于0x20至0x7E段。
步骤S105,得到所述显示段的字符显示宽高元信息。
得到步骤S102中已计算得到的0x20至0x7E段的字符显示宽高元信息。
步骤S106,使用所述字符显示宽高元信息计算得到所述字符的显示宽高。
根据字符与字符的显示宽高一一对应关系,从0x20至0x7E段的字符显示宽高元信息中,获取小写字母a的显示宽高。
有了上述计算给定字符的显示宽高的方法,如果要计算一个给定字符串的显示宽高,可以遍历给定的字符串中的所有字符,重复执行步骤S103至S106,即可得到给定字符串中所有字符的显示宽高。根据实施者选定的显示排版方式是延水平方向排版亦或是延垂直方向排版,计算给定字符串显示宽高的方法略有不同,下面将分开说明。
假定实施者选定的显示排版方式为延水平方向排版,则计算上述给定字符串显示宽高的方法为:通过将所述字符串中字符的显示宽度相加求和,计算所述字符串的显示宽度;使用所述字符串中显示高度最高的字符的显示高度作为所述字符串的显示高度。
假定实施者选定的显示排版方式为延垂直方向排版,则计算上述给定字符串显示宽高的方法为:通过将所述字符串中字符的显示高度相加求和,计算所述字符串的显示高度;使用所述字符串中显示宽度最宽的字符的显示宽度作为所述字符串的显示宽度。
与所述显示段一一对应的字符显示宽高元信息要包括字符的显示宽度、显示高度等元信息,用以确定特定字符的显示宽高。
可选地,在显示段中字符数目较少的情况下,所述字符显示宽高元信息可以是与所述显示段中每个字符一一对应的单个字符的显示宽高信息。在需要确定特定字符的显示宽高时,可以使用与特定字符相对应的显示宽高来确定其显示宽高。
可选地,在显示段中字符数目较多、且字符宽度基本一致的情况下,所述字符显示宽高元信息可以是所述显示段中显示宽度最宽的字符的显示宽度、与所述显示段中每个字符一一对应的单个字符的显示高度。在需要确定特定字符的显示宽高时,可以使用与特定字符相对应的显示高度来确定其显示高度、使用显示宽度最宽的字符的显示宽度来确定其显示宽度。
可选地,在显示段中字符数目较多、且字符高度基本一致的情况下,所述字符显示宽高元信息可以是所述显示段中显示高度最高的字符的显示高度、与所述显示段中每个字符一一对应的单个字符的显示宽度。在需要确定特定字符的显示宽高时,可以使用与特定字符相对应的显示宽度来确定其显示宽度、使用显示高度最高的字符的显示高度来确定其显示高度。
可选地,在显示段中字符数目较多的情况下,所述字符显示宽高元信息可以是所述显示段中显示宽度最宽的字符的显示宽度、显示高度最高的字符的显示高度。在需要确定特定字符的显示宽高时,可以使用显示宽度最宽的字符的显示宽度来确定其显示宽度、使用显示高度最高的字符的显示高度来确定其显示高度。
本实施例适用于虽然可以勉强运行freetype或类似功能的软件库读取、解码字体文件、但运行上述所述操作往往比较吃力的低计算力设备。
实施例2
为解决传统技术中计算字符、字符串等的显示宽高的方法不适用于低性能计算装置的技术问题,在本实施例中,特提出了一种计算字符、字符串等的显示宽高的方法,该方法的实现包括高计算力的客户机与低计算力的服务机两部分。
服务机的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上。服务机可以是运行上述计算机程序的某种内存受限、计算性能低下、严格控制整机功耗的低性能计算装置,例如内部使用MCU微控制器进行控制的冰箱、空调、洗衣机等。
客户机的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上。客户机可以是带显示输出功能的计算装置,如:投影仪、电脑(包含主机与显示器)、通用手机、通用平板电脑、以及形态上类似通用手机的专用于某领域内的专用手机(比如对讲机)、形态上类似通用平板的专用于某领域内的专用平板(比如增加了Zigbee通信模块的专用平板)。相对于服务机,客户机拥有丰富的内存资源、计算性能强大、并具有成熟的图形用户接口(比如windows、安卓、iOS、Qt、GTK等)支持。
因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。
虽然示例性实施例的方法和系统可以应用任何类型的通信技术,但将以“WIFI、TCP/IP通信技术”作为通信技术示例进行描述。
虽然示例性实施例的方法和系统可以应用在任何类型的服务机上,但将以基于MCU控制的空调、洗衣机等作为服务机示例进行描述。
虽然示例性实施例的方法和系统可以应用在任何类型的客户机上,但将以安装有安卓操作系统的手机作为客户机示例进行描述。
在本实施例中,计算字符、字符串等的显示宽高的方法是通过至少一客户机和至少一服务机的环境而执行的。以一种使用场景举例的话,客户机是指手机,手机上安装执行本方法的计算机程序和/或硬件。服务机是基于MCU控制的空调、洗衣机等装置,洗衣机、空调等装置上均安装执行本方法的计算机程序和/或硬件。服务机和客户机均接入可以相互通信的通信通道,比如均接入同一个WIFI且能够获取到互不冲突的IP地址。
客户机、服务机应当共用同一套数据报文定义,以确保二者对于数据报文的理解是一致的。服务机具有编码、发送数据报文给客户机的能力。客户机具有接收、解码数据报文的能力。发送端按顺序发出的一系列数据报文(比如报文1、报文2、报文3),接收端必须严格按照该顺序来执行。
本发明对数据报文的格式不作具体限定,任何能实现将本发明涉及到的数据报文在发送端和接收端之间传递的数据格式均属于本发明的保护范围。数据报文的一种格式被举例如下,其包括如下组成部分:命令码、报文总长度、命令附带的参数数据等。可选择地,数据报文中还可以包括命令编号,命令编号代表命令被发出的先后顺序,客户端应当根据命令编号来顺序执行服务端发出的命令。可选择地,数据报文中还可以包括校验码。
具体的,如图2所示,所述计算字符显示宽高的方法包括如下步骤S201-S206:
步骤S201,将字符集划分成若干显示段。
以实施者选择Unicode作为字符集为例。
众所周知,Unicode是基于ASCII进行了扩展。因此可以参照划分ASCII字符集的方式,划分三个显示段:0x00至0x1F;0x20至0x7E;0x7F。
根据Unicode编码规则,以支持简体中文为例,划分出第四个显示段:0x4E00至0x9FA5段,中日韩统一表意文字显示区。
上述显示段的定义与划分将统一应用于服务机和客户机。
步骤S202,在客户机上计算出与所述显示段一一对应的字符显示宽高元信息。
根据上述对显示段的划分,由于0x00至0x1F段、0x7F段的字符不具有显示宽高,因此可以直接计算得出上述两个段的显示宽高元信息为:所有字符的宽高均为0。
接下来,选定字体,比如使用宋体字体;在后续绘制、打印字符时,也需要使用在此选定的同样字体。
利用客户机上成熟的图形用户接口(比如windows、安卓、iOS、Qt、GTK等)计算0x20至0x7E段的每个字符的显示宽高,将字符与字符的显示宽高一一对应,作为0x20至0x7E段的字符显示宽高元信息。
利用客户机上成熟的图形用户接口(比如windows、安卓、iOS、Qt、GTK等)计算0x4E00至0x9FA5段的每个字符的显示宽高,由于该段字符数目较多,因此可以将其中显示宽度最宽的字符的显示宽度、显示高度最高的字符的显示高度作为该段的字符显示宽高元信息。
可选择地,由于0x4E00至0x9FA5段的字符数目较多,可以挑选出一些笔划数较多、笔划较稠密、显示宽高较大的字符作为计算样本,以减少计算量。具体地,比如可以选择如下汉字作为计算样本:龘、靐、齾、爩、鱻、麤、龗、灪、厵、滟、爨、癵、驫、麣、纞、虋、讟、钃、鸜、麷、鞻、韽、韾、顟、騳、騱、饐、籱、鬰、靊、飝、虪、齺、魕、爧、蠿、饢、顠、饙、虌。同样地,将上述样本中显示宽度最宽的字符的显示宽度、显示高度最高的字符的显示高度作为该段的字符显示宽高元信息。
上述计算出与所述显示段一一对应的字符显示宽高元信息的过程位于高计算力客户机上,只需执行一次,可以将上述于高计算力客户机上计算得到的字符显示宽高元信息与所述显示段一一对应,存储在高计算力客户机上,以备后续使用。
可选择地,可以将上述于高计算力客户机上计算得到的字符显示宽高元信息与所述显示段一一对应,存储在低计算力服务机上,以备后续使用。
步骤S203,在服务机上得到要计算显示宽高的字符。
待计算显示宽高的字符包含在步骤S201所选定的字符集Unicode中。本计算过程发生在低计算力服务机上。
步骤S204,在服务机上计算所述字符位于哪个显示段。
比如要计算显示宽高的字符为小写字母a,其ASCII/Unicode码为0x61,位于0x20至0x7E段。
比如要计算显示宽高的字符为简体中文汉字“一”,其Unicode码位于0x4E00至0x9FA5段。
本计算过程发生在低计算力服务机上。
步骤S205,在服务机上得到所述显示段的字符显示宽高元信息。
本计算过程发生在低计算力服务机上。
如果步骤S202中已将所述显示段的字符显示宽高元信息存储在低计算力服务机上,则所述低计算力服务机得到所述显示段的字符显示宽高元信息的步骤具体为:获取步骤S202中已存储下来的所述显示段的字符显示宽高元信息。
比如要计算显示宽高的字符为小写字母a,需要得到步骤S202中已存储下来的0x20至0x7E段的字符显示宽高元信息。
比如要计算显示宽高的字符为简体中文汉字“一”, 需要得到步骤S202中已存储下来的0x4E00至0x9FA5段的字符显示宽高元信息。
如果步骤S202中未将所述显示段的字符显示宽高元信息存储在低计算力服务机上,则所述低计算力服务机得到所述显示段的字符显示宽高元信息的步骤可以是:所述低计算力服务机接收所述高计算力客户机发送的所述显示段的字符显示宽高元信息。
步骤S206,在服务机上使用所述字符显示宽高元信息计算得到所述字符的显示宽高。
本计算过程发生在低计算力服务机上。
比如要计算显示宽高的字符为小写字母a,根据字符与字符的显示宽高一一对应关系,从0x20至0x7E段的字符显示宽高元信息中,获取小写字母a的显示宽高。
比如要计算显示宽高的字符为简体中文汉字“一”,可以使用0x4E00至0x9FA5段的字符显示宽高元信息,作为简体中文汉字“一”的显示宽高。
有了上述计算给定字符的显示宽高的方法,如果要计算一个给定字符串的显示宽高,可以遍历给定的字符串中的所有字符,重复执行步骤S203至S206,即可得到给定字符串中所有字符的显示宽高。根据实施者选定的显示排版方式是延水平方向排版亦或是延垂直方向排版,计算给定字符串显示宽高的方法略有不同,下面将分开说明。
假定实施者选定的显示排版方式为延水平方向排版,则计算上述给定字符串显示宽高的方法为:通过将所述字符串中字符的显示宽度相加求和,计算所述字符串的显示宽度;使用所述字符串中显示高度最高的字符的显示高度作为所述字符串的显示高度。
假定实施者选定的显示排版方式为延垂直方向排版,则计算上述给定字符串显示宽高的方法为:通过将所述字符串中字符的显示高度相加求和,计算所述字符串的显示高度;使用所述字符串中显示宽度最宽的字符的显示宽度作为所述字符串的显示宽度。
需要说明的是,基于0x4E00至0x9FA5段的字符数目较多,本实施例中特提出的通过在所述显示段中选择计算样本来减少计算量的方法,同样适用于实施例1及其它实施例。
实施例3
此外,为解决传统技术中计算字符、字符串等的显示宽高的方法不适用于低性能计算装置的技术问题,还提出了一种计算字符、字符串等的显示宽高的装置,如图3所示,包括:
主控模块301,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高。
显示段规划模块302,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段。
字符、字符串等的获取模块303,用以获取待计算显示宽高的字符、字符串等。
字符显示宽高元信息存储模块304,用以存储所述字符显示宽高元信息,用以读取所述字符显示宽高元信息供其它模块使用。
需要说明的是,本实施例提供的计算字符、字符串等的显示宽高的装置可以实现实施例1提供的计算字符、字符串等的显示宽高的方法,并与之对应,这里就不再赘述。
实施例4
此外,为解决传统技术中计算字符、字符串等的显示宽高的方法不适用于低性能计算装置的技术问题,还提出了一种计算字符、字符串等的显示宽高的装置,如图4所示,包括:
主控模块401,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高。
显示段规划模块402,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段。
字符、字符串等的获取模块403,用以获取待计算显示宽高的字符、字符串等。
字符显示宽高元信息存储模块404,用以存储所述字符显示宽高元信息,用以读取所述字符显示宽高元信息供其它模块使用。
字符显示宽高元信息接收模块405,用以从所述客户机接收所述字符显示宽高元信息。
需要说明的是,本实施例提供的计算字符、字符串等的显示宽高的装置可以实现实施例2提供的计算字符、字符串等的显示宽高的方法,并与之对应,这里就不再赘述。
实施本发明实施例,将具有如下有益效果:
采用了上述方法和/或装置之后,低计算力装置在计算字符、字符串等的显示宽高之时无需执行读取、解码矢量字体文件等极其耗费硬件资源的操作,从而降低了计算字符、字符串等的显示宽高所需要的计算能力需求和缓存空间需求,因此可适用于低计算力物联网装置。
在上述实施例中,可以全部或部分的通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务机或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务机或者数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务机、数据中心等数据存储装置。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围;本领域技术人员在没有作出创造性劳动的前提下,获得的其它实施例仍属本发明所涵盖的范围。
Claims (10)
1.一种计算字符显示宽高的方法,包括:
将字符集划分成若干显示段;
计算出与所述显示段一一对应的字符显示宽高元信息;
得到要计算显示宽高的字符;
计算所述字符位于哪个显示段;
得到所述显示段的字符显示宽高元信息;
使用所述字符显示宽高元信息计算得到所述字符的显示宽高。
2.如权利要求1所述的方法,其特征在于,所述显示段的字符显示宽高元信息包含有:
与所述显示段中每个字符一一对应的单个字符的显示宽高信息;
或,所述显示段中显示宽度最宽的字符的显示宽度、与所述显示段中每个字符一一对应的单个字符的显示高度;
或,所述显示段中显示高度最高的字符的显示高度、与所述显示段中每个字符一一对应的单个字符的显示宽度;
或,所述显示段中显示宽度最宽的字符的显示宽度、显示高度最高的字符的显示高度。
3.如权利要求1所述,更为特别的是一种计算字符串显示宽高的方法,包括:
得到要计算显示宽高的字符串,所述字符串由若干个字符组成;
使用权利要求1所述的方法计算得到每个字符的显示宽高;
通过将所述字符串中字符的显示宽度相加求和,计算所述字符串的显示宽度;
使用所述字符串中显示高度最高的字符的显示高度作为所述字符串的显示高度。
4.如权利要求1所述,更为特别的是一种计算字符串显示宽高的方法,包括:
得到要计算显示宽高的字符串,所述字符串由若干个字符组成;
使用权利要求1所述的方法计算得到每个字符的显示宽高;
通过将所述字符串中字符的显示高度相加求和,计算所述字符串的显示高度;
使用所述字符串中显示宽度最宽的字符的显示宽度作为所述字符串的显示宽度。
5.如权利要求1所述,其特征在于,所述方法基于高计算力的客户机与低计算力的服务机,包括:
将字符集划分成若干显示段,上述显示段的划分结果统一适用于高计算力的客户机与低计算力的服务机;
所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤在高计算力客户机上被执行;
所述得到要计算显示宽高的字符的步骤在低计算力服务机上被执行;
所述计算所述字符位于哪个显示段的步骤在低计算力服务机上被执行;
在所述得到所述显示段的字符显示宽高元信息的步骤之前,所述显示段的字符显示宽高元信息被存储在所述低计算力服务机内部;所述得到所述显示段的字符显示宽高元信息的步骤在低计算力服务机上被执行,且具体为:所述低计算力服务机读取被存储在其内部的所述显示段的字符显示宽高元信息;
所述使用所述字符显示宽高元信息计算得到所述字符的显示宽高的步骤在低计算力服务机上被执行。
6.如权利要求1所述的方法,其特征在于,在所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤中,使用如下方法来减少计算量:
从所述显示段中选择字符样本进行计算,而不是完整遍历并计算所述显示段中的全部字符。
7.如权利要求1所述,其特征在于,所述方法基于高计算力的客户机与低计算力的服务机,包括:
将字符集划分成若干显示段,上述显示段的划分结果统一适用于高计算力的客户机与低计算力的服务机;
所述计算出与所述显示段一一对应的字符显示宽高元信息的步骤在高计算力客户机上被执行;
所述得到要计算显示宽高的字符的步骤在低计算力服务机上被执行;
所述计算所述字符位于哪个显示段的步骤在低计算力服务机上被执行;
所述得到所述显示段的字符显示宽高元信息的步骤在低计算力服务机上被执行,且具体为:所述低计算力服务机接收所述高计算力客户机利用通信技术发送的所述显示段的字符显示宽高元信息;
所述使用所述字符显示宽高元信息计算得到所述字符的显示宽高的步骤在低计算力服务机上被执行。
8.一种计算字符、字符串等的显示宽高的装置,其特征在于,所述装置可以执行如权利要求1-6中任一项所述的方法,所述装置包括:
显示段规划模块,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段;
字符、字符串等的获取模块,用以获取待计算显示宽高的字符、字符串等;
字符显示宽高元信息存储模块,用以存储、读取所述字符显示宽高元信息;
主控模块,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高。
9.一种计算字符、字符串等的显示宽高的装置,其特征在于,所述装置可以执行如权利要求1-7中任一项所述的方法,所述装置包括:
显示段规划模块,用以将字符集划分成若干显示段、判断某个字符属于哪个显示段;
字符、字符串等的获取模块,用以获取待计算显示宽高的字符、字符串等;
字符显示宽高元信息存储模块,用以存储、读取所述字符显示宽高元信息;
主控模块,用以控制所述装置的内部执行流程、模块间的配合,使用所述字符显示宽高元信息计算字符、字符串等的显示宽高;
字符显示宽高元信息接收模块,用以接收所述客户机发送的所述字符显示宽高元信息。
10.一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810881700.4A CN109240628A (zh) | 2018-08-05 | 2018-08-05 | 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810881700.4A CN109240628A (zh) | 2018-08-05 | 2018-08-05 | 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109240628A true CN109240628A (zh) | 2019-01-18 |
Family
ID=65070512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810881700.4A Pending CN109240628A (zh) | 2018-08-05 | 2018-08-05 | 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240628A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377202A (zh) * | 2021-06-25 | 2021-09-10 | 杭州炽云科技有限公司 | 一种基于arhud的抬头显示方法和系统 |
CN113433695A (zh) * | 2021-06-25 | 2021-09-24 | 杭州炽云科技有限公司 | 一种基于whud的抬头显示方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593171A (zh) * | 2008-05-28 | 2009-12-02 | 北京飞漫软件技术有限公司 | 一种可通过内存映射方式访问的字体文件及其访问方法 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN104281601A (zh) * | 2013-07-05 | 2015-01-14 | 北大方正集团有限公司 | 构建超大字库的方法及装置、字符显示方法及装置 |
CN105279238A (zh) * | 2015-09-28 | 2016-01-27 | 北京国双科技有限公司 | 字符串处理方法和装置 |
-
2018
- 2018-08-05 CN CN201810881700.4A patent/CN109240628A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593171A (zh) * | 2008-05-28 | 2009-12-02 | 北京飞漫软件技术有限公司 | 一种可通过内存映射方式访问的字体文件及其访问方法 |
CN104281601A (zh) * | 2013-07-05 | 2015-01-14 | 北大方正集团有限公司 | 构建超大字库的方法及装置、字符显示方法及装置 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN105279238A (zh) * | 2015-09-28 | 2016-01-27 | 北京国双科技有限公司 | 字符串处理方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377202A (zh) * | 2021-06-25 | 2021-09-10 | 杭州炽云科技有限公司 | 一种基于arhud的抬头显示方法和系统 |
CN113433695A (zh) * | 2021-06-25 | 2021-09-24 | 杭州炽云科技有限公司 | 一种基于whud的抬头显示方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199927B (zh) | 数据处理方法及数据处理装置 | |
CN1856819B (zh) | 通过分布式应用程序的图形数据的网络传输的系统和方法 | |
CN105159928B (zh) | 一种json数据转换成模型数据的方法及系统 | |
CN109240628A (zh) | 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质 | |
US9875552B1 (en) | Content independent method of motion determination using sparse matrices | |
CN105512265A (zh) | 一种通过图形展示数据的方法及装置 | |
CN103688240A (zh) | 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备 | |
CN102855648A (zh) | 一种图像处理方法及装置 | |
CN103177419A (zh) | 一种矢量图转位图的缓存方法及其专用图像处理设备 | |
TWI679868B (zh) | 一種碼塊分割方法、終端、基地台及電腦可讀存儲介質 | |
CN105096367A (zh) | 优化Canvas绘制性能的方法及装置 | |
WO2015000259A1 (zh) | 构建超大字库的方法及装置、字符显示方法及装置 | |
CN104104719A (zh) | 一种电网调度移动应用中电网实时潮流图的展示方法 | |
CN104394410A (zh) | 图像数据压缩方法、解压缩方法、传输方法及装置 | |
EP2728803B1 (en) | Systems and Methods for Implementation of a Smart Energy Profile Using Data-Interchange Encoding | |
CN106791855B (zh) | 一种降低坐席管理系统成本的方法及系统 | |
CN103077697B (zh) | 一种支持画面动态缩放满框显示的云端显示器 | |
CN105787987A (zh) | 一种纹理处理方法及电子设备 | |
US6459392B1 (en) | Technique for encoding a sequence of periodic byte values with vertical correlation | |
CN104731547A (zh) | 动态趋势图的绘制方法 | |
JPWO2015052968A1 (ja) | サーバ装置、クライアント装置、情報処理方法および記録媒体 | |
CN103268619B (zh) | swf文件中图片数据批量压缩的方法及装置 | |
CN103366716A (zh) | 点阵字库中字符及点阵字库的压缩和解压方法及设备 | |
CN104657282B (zh) | 一种显示多媒体的方法和装置 | |
JP6002268B1 (ja) | データ表示システム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |
|
RJ01 | Rejection of invention patent application after publication |