首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】使用QML显示彩色表情的方法及系统、服务器及介质_武汉斗鱼网络科技有限公司_201810409738.1 

申请/专利权人:武汉斗鱼网络科技有限公司

申请日:2018-05-02

公开(公告)日:2022-03-25

公开(公告)号:CN108614805B

主分类号:G06F40/109(20200101)

分类号:G06F40/109(20200101);G06F16/957(20190101)

优先权:

专利状态码:有效-授权

法律状态:2022.03.25#授权;2018.10.30#实质审查的生效;2018.10.02#公开

摘要:本发明公开了一种使用QML显示彩色表情的方法及系统、服务器及介质,其通过查找Windows系统支持的彩色表情字体,采用QML提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体,同时在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;然后根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;最后分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符,从而实现使用QML能绘制彩色表情的目的。

主权项:1.一种使用QML显示彩色表情的方法,其特征在于,所述使用QML显示彩色表情的方法包括如下步骤:查找Windows系统支持的彩色表情字体;通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符;所述分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符包括如下具体步骤:在筛选得到的表情字符前加入字形标记;根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;非表情字符则使用LoadFont接口加载非表情普通字体进行解析。

全文数据:使用QML显示彩色表情的方法及系统、服务器及介质技术领域[0001]本发明涉及软件工程领域,尤其涉及一种使用QML显示彩色表情的方法及系统、服务器及介质。背景技术[0002]自Emoji诞生以来,Emoji极大地丰富了我们的生活和通讯交流,用户越来越习惯于输入Emoji,因此接触Emoji也只会越来越频繁。Emoji绘文字)是一种图形字符,网络中经常用作表情符号。Etnoji不是图片,每个Emoji都像文字一样拥有独立编码并且可以存放于字库中。[0003]Emoji诞生自程序员,但反过来对程序员也造成过一些困扰,比如Emoji在计算机表示形式。从2010开始,一些表情符号字符集已经统一被纳入标准的Unicode索引系统中,即表情符号映射到Unicode表中字符序列,因此在不同的平台上同一表情能有统一的Unicode表现形式,在Unicode编码中,Emoji主要安排在1号平面第241行至第247行(1F000-1F6FF,以及0号平面第39行和40行(2600-27FF等位置,同时编码采用的是U+序列的表现形式,同时在UTF-8也给出了具体的表现形式。[0004]由于很多Windows软件都用基于QML开发,如何利用QML漬染方式绘制Emoji黑白表情本身就是一个难题,同时由于Windows提供的系统字体通常是黑白的,然后需要通过使用QML来显示Emoji彩色表情,也是一个难题,本方案就是提供一种通过使用QML能绘制Emoji表情并能绘制彩色表情的方法。发明内容[0005]有鉴于此,本发明实施例提供了一种使用QML显示彩色表情的方法及系统、服务器及介质,以解决现有技术中无法利用QML渲染方式绘制Emoji彩色表情的问题。[0006]本发明实施例的第一方面,提供了一种使用QML显示彩色表情的方法,其包括如下步骤:[0007]查找Windows系统支持的彩色表情字体;[0008]通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;[0009]在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;[0010]根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;[0011]分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。[0012]本发明实施例的第二方面,提供了一种使用QML显示彩色表情的系统,其包括如下功能模块:[0013]字体查找模块,用于查找Windows系统支持的彩色表情字体;[0014]字体加载模块,用于通过基于骤^开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;[0015]控件设置模块,用于在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;[0016]字符筛选模块,用于根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;[0017]字符解析模块,用于分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。[0018]本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述使用QML显示彩色表情的方法的步骤。[0019]本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述使用QML显示彩色表情的方法的步骤。[0020]本发明所述使用QML显示彩色表情的方法及系统、服务器及介质,其通过查找Windows系统支持的彩色表情字体,采用QML提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体,同时在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;然后根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;最后分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符,从而实现使用QML能绘制彩色表情的目的。附图说明[0021]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0022]图1为本发明实施例提供的使用QML显示彩色表情的方法的流程框图;[0023]图2为本发明实施例提供的使用QML显示彩色表情的方法的步骤流程图;[0024]图3为图1中步骤S5的流程框图;[0025]图4为本发明实施例提供的使用QML显示彩色表情的系统的功能模块框图;[0026]图5为本发明实施例提供的字符解析模块的功能单元框图;[0027]图6为本发明实施例提供的服务器的结构示意图。具体实施方式[0028]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。[0029]如图1和图2所示,本发明实施例提供的一种使用QML显示彩色表情的方法,其中,所述使用QML显示彩色表情的方法包括如下步骤:[0030]S1、查找Windows系统支持的彩色表情字体。[0031]所述Windows系统支持的彩色表情字体为SegeoUIEmoji。具体通过查看微软Windows系统中提供的字体映射表可以发现,在windows7之后,微软提供了一种专门用于绘制Emoji表情的字体SegoeUIEmoji字体,且SegeoUIEmoji提供了搜索功能,通过输入Unicode可以获得对应的Emoji符号表情,同时通过Emoji表情可以得到相应的Unicode内容。[0032]S2、通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体。[0033]采用基于QML开发的应用程序中具有LoadFont接口,通过所述LoadFont接口可以动态加载Windows系统支持的彩色表情字体,具体操作方式是将字体文件放入到指定目录,再通过所述LoadFont接口中的Source字段指定字体文件路径,当基于QML开发的应用程序启动时,由于预先指定了文件路径,基于QML开发的应用程序就会自动加载相关字体。但由于非表情字体也要同时支持,而QML中只提供一种字体,如果将字体直接改为Windows系统支持的彩色表情字体SegeoUIEmoji,则无法支持英文和数字的解析,因此,需要使用另一种字体例如:微软雅黑来支持数字和英文等字符。[0034]由于表情使用的频率没有英文和数字高,直接使用html中的层叠样式表提供的表情字体族又比较耗时,所以本发明通过基于QML开发的应用程序中提供的LoadFont接口加载非彩色表情字体,同时使用html中层叠样式表提供的表情字体族加载彩色表情字体,从而来支持所有字符的显示。[0035]S3、在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式。优选的,在基于QML开发的应用程序的文本控件中,所述能够支持字体本身渲染方式的渲染模块具体为NativeRender渲染模块,所述能够支持html解析字符的文本格式具体为RichText。[0036]基于QML开发的应用程序的Text控件有提供了两种渲染方式,一种是NativeRender原始植染方式,另一种是QtRendering,而QtRendering会改变字体本身的渲染方式,因此我们需要使用基于QML开发的应用程序中Text控件RenderType的NativeRender渲染方式,来支持字体本身渲染方式。[0037]其次基于QML开发的应用程序对文本格式的支持提供了四种方式,分别是八111:〇1611:、?13;11116\1:、51716116\1;、1^;111611;,而其中只有1?;1_;1116\1:支持富文本111:1111,因此需要将Text的format设置成RichText,才可以支持html解析字符。[0038]同时,还需要将NativeRender中的缩放比例修改为边框和字体的等比缩放。具体操作方式是首先求出字体和边框的比例,然后在缩放窗口时获得窗口的宽度,最后根据字体和边框的比例计算算出整个字体和边框的宽度,从而根据整个字体和边框的宽度将NativeRender中的缩放比例修改为边框和字体的等比缩放。[0039]S4、根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符。[0040]由于Unicode官方提供的表情字符的Unicode区间为(\ud83c\udf00-\ud83c\udfff],(\ud83d\udc00-\ud83d\ude4f],(\ud83d\ude80-\ud83d\udeff,(\u2600-\u2b55,则通过正则表达式对基于QML开发的应用程序的输入字符串进行筛选。[0041]具体的,首先将基于QML开发的应用程序的输入字符串中的每个字符转化为Unicode,若转换后的Unicode在上述表情字符的Unicode区间内,则代表该字符为表情字符,若不在,则代表该字符为非表情普通字符,通过上述方法可分辨出表情字符和非表情普通字符。[0042]S5、分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。[0043]如图3所示,所述步骤S5如下具体步骤:[0044]S51、在筛选得到的表情字符前加入字形标记;[0045]S52、根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;[0046]S53、非表情字符则使用LoadFont接口加载非表情普通字体进行解析。[0047]具体的,在筛选得到的表情字符前加入字形标记,然后根据字形标记,使用html中css提供的字体族群给表情字符添加相应字体族群,即为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析,而非表情字符则使用LoadFont接口加载非表情普通字体进行解析,从而实现在基于QML开发的应用程序中显示彩色表情的目的。[0048]本发明所述使用QML显示彩色表情的方法,其通过查找Windows系统支持的彩色表情字体,采用QML提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体,同时在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;然后根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;最后分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符,从而实现使用QML能绘制彩色表情的目的。优选的,本发明所述使用QML显示彩色表情的方法可实际应用于在弹幕中编辑彩色表情,使弹幕的信息更加生动形象。[0049]应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。[0050]上面主要描述了一种使用QML显示彩色表情的方法,下面将对一种使用QML显示彩色表情的系统进行详细描述。[0051]图4示出了本发明实施例提供的使用QML显示彩色表情的系统的一个实施例结构图。如图4所示,所述使用QML显示彩色表情的系统包括以下功能模块:[0052]字体查找模块10,用于查找Windows系统支持的彩色表情字体;[0053]字体加载模块20,用于通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;[0054]控件设置模块30,用于在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持htral解析字符的文本格式;[0055]字符筛选模块40,用于根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;[0056]字符解析模块50,用于分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。[0057]其中,如图5所示,所述字符解析模块包括以下功能单元:[0058]标记添加单元51,用于在筛选得到的表情字符前加入字形标记;[0059]表情字符解析单元52,用于根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;[0060]非表情字符解析单元53,用于非表情字符则使用LoadFont接口加载非表情普通字体进行解析。[0061]图6是本发明一实施例提供的使用QML显示彩色表情的的服务器结构的示意图。所述服务器,为提供计算服务的设备,通常指具有较高计算能力,通过网络提供给多个用户使用的计算机。如图6所示,该实施例的服务器6包括:存储器61、处理器62以及系统总线63,所述存储器61包括存储其上的可运行的程序611,本领域技术人员可以理解,图6中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0062]下面结合图6对终端设备的各个构成部件进行具体的介绍:[0063]存储器61可用于存储软件程序以及模块,处理器62通过运行存储在存储器61的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序比如声音播放功能、图像播放功能等等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。[0064]在存储器61上包含使用QML显示彩色表情的方法的可运行程序611,所述可运行程序611可以被分割成一个或多个模块单元,所述一个或多个模块单元被存储在所述存储器61中,并由处理器62执行,以完成通知的传递并获取通知实现过程,所述一个或多个模块单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序611在所述服务器6中的执行过程。例如,所述计算机程序611可以被分割为获取模块、比对模块、拼接模块和发送模块。[0065]处理器62是服务器的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器61内的软件程序和或模块,以及调用存储在存储器61内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器62可包括一个或多个处理单元;优选的,处理器62可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器62中。[0066]系统总线63是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如PCI总线、ISA总线、VESA总线等。处理器62的指令通过总线传递至存储器61,存储器61反馈数据给处理器62,系统总线63负责处理器62与存储器61之间的数据、指令交互。当然系统总线63还可以接入其他设备,例如网络接口、显示设备等。[0067]所述服务器应至少包括CPU、芯片组、内存、磁盘系统等,其他构成部件在此不再赘述。[0068]在本发明实施例中,该终端所包括的处理器62执行的可运行程序具体为:一种使用QML显示彩色表情的方法,其包括:[0069]查找Windows系统支持的彩色表情字体;[0070]通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;[0071]在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;[0072]根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;[0073]在筛选得到的表情字符前加入字形标记;[0074]根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;[0075]非表情字符则使用LoadFont接口加载非表情普通字体进行解析。[0076]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0077]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。[0078]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0079]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

权利要求:1.一种使用QML显示彩色表情的方法,其特征在于,所述使用QML显示彩色表情的方法包括如下步骤:查找Windows系统支持的彩色表情字体;通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。2.根据权利要求1所述使用QML显示彩色表情的方法,其特征在于,所述分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符包括如下具体步骤:在筛选得到的表情字符前加入字形标记;根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;非表情字符则使用LoadFont接口加载非表情普通字体进行解析。3.根据权利要求1或2中任意一项所述使用QML显示彩色表情的方法,其特征在于,所述Windows系统支持的彩色表情字体为SegeoUIEmoji。4.根据权利要求1所述使用QML显示彩色表情的方法,其特征在于,在基于QML开发的应用程序的文本控件中,所述能够支持字体本身渲染方式的渲染模块具体为NativeRender渲染模块,所述能够支持html解析字符的文本格式具体为RichText。5.根据权利要求4所述使用QML显示彩色表情的方法,其特征在于,将NativeRender中的缩放比例修改为边框和字体的等比缩放。6.根据权利要求1所述使用QML显示彩色表情的方法,其特征在于,通过正则表达式对基于QML开发的应用程序的输入字符串进行筛选。7.—种使用QML显示彩色表情的系统,其特征在于,所述使用QML显示彩色表情的系统包括如下功能模块:字体查找模块,用于查找Windows系统支持的彩色表情字体;字体加载模块,用于通过基于QML开发的应用程序中提供的LoadFont接口加载非表情普通字体,并使用html中层叠样式表提供的表情字体族加载彩色表情字体;控件设置模块,用于在基于QML开发的应用程序的文本控件中,选择能够支持字体本身渲染方式的渲染模块,并设置能够支持html解析字符的文本格式;字符筛选模块,用于根据Unicode提供的表情字符,匹配筛选区分出基于QML开发的应用程序的输入字符串中的表情字符和非表情普通字符;字符解析模块,用于分别采用彩色表情字体、非表情普通字体来解析表情字符、非表情普通字符。8.根据权利要求7所述使用QML显示彩色表情的系统,其特征在于,所述字符解析模块包括以下功能单元:标记添加单元,用于在筛选得到的表情字符前加入字形标记;表情字符解析单元,用于根据字形标记,为彩色表情字符指定使用Windows系统支持的彩色表情字体进行解析;非表情字符解析单元,用于非表情字符则使用LoadFont接口加载非表情普通字体进行解析。_9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述使用QML显示彩色表情的方法的步骤。10.二种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在机f序被处理器执行时实现如权利要求1至6任—项所述使用QML显示彩色表丨同的步马朱D

百度查询: 武汉斗鱼网络科技有限公司 使用QML显示彩色表情的方法及系统、服务器及介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。