使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质技术方案

技术编号:24289996 阅读:267 留言:0更新日期:2020-05-26 20:12
本发明专利技术涉及一种使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质,所述方法通过将Emoji表情字符和普通字符进行分离,为表情字符和普通字符指定不同类型的文本控件,动态创建不同类型的文本控件,且为表情字符和非表情字符设置相同布局,实现了使用Qml中对含Emoji彩色表情弹幕描边。

Using QML to describe Emoji emoticon, system, server and storage medium

【技术实现步骤摘要】
使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质
本专利技术涉及互联网PC客户端应用开发
,具体涉及一种使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质。
技术介绍
自Emoji诞生以来,Emoji极大地丰富了我们的生活和通讯交流,用户越来越习惯于输入Emoji,因此接触Emoji也越来越频繁,Emoji(绘文字)是一种图形字符,网络中经常用作表情符号。Emoji不是图片,每个Emoji都像文字一样拥有独立编码并且可以存放于字库中。在Unicode编码中,Emoji主要安排在1号平面第241行至第247行(1F000-1F6FF),以及0号平面第39行和40行(2600-27FF)等位置,同时编码采用的是U+序列的表现形式,同时在UTF-8也给出了具体的表现形式。给文字加入描边效果,即能增强文字的表现形式,又能增强趣味性,因此文字描边广泛应用于直播弹幕、游戏娱乐以及PPT文字演示中。由于Emoji表情和文字在Windows中统一为String类型的字符,并且统一通过控件Text进行渲染,然而在Windows系统中,彩色表情不允许加入描边,当对含有表情和文字的Text控件直接加描边时,彩色表情Windows在渲染时会出现异常。当需要对含彩色表情的弹幕加描边时,需要对彩色表情和普通文字分别指定不同渲染方式,并且由于在Windows中彩色表情和普通文字统一通过控件Text进行渲染,因此需要为彩色表情和普通文字单独创建文本控件,并且指定统一布局,才能对含有彩色表情的弹幕加入描边时显示正常。然而如何区分Emoji字符还是普通字符,又由于Emoji字符可能由两个Unicode字符组成,如何将Emoji字符和普通字符分开,同时在QML中,如何动态创建文本控件并且设置相同的布局均是待解决的问题。
技术实现思路
鉴于现有技术存在的问题,本专利技术的目的是提供一种使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质,所述方法通过将Emoji表情字符和普通字符进行分离,为表情字符和普通字符指定不同类型的文本控件,动态创建不同类型的文本控件,且为表情字符和非表情字符设置相同布局,实现了使用Qml中对含Emoji彩色表情弹幕描边。为了实现上述目的,本专利技术采用的技术方案为一种使用QML对含Emoji表情弹幕描边方法,所述方法包括以下步骤:S1、通过表情字符的统一码Unicode区间判断文本字符是否为表情字符;S2、将找出的表情字符和普通字符进行分离;S3、将分离后的表情字符指定不加入描边的文本控件,将分离后的普通字符指定加入描边的文本控件,并动态创建表情字符和普通字符相对应的文本控件,并对普通字符进行描边;S4、设置步骤S3中表情字符和普通字符对应的文本控件中字符为相同布局,使得每个字符高度间距保持一致。在上述技术方案中,所述步骤S1中,通过正则表达式匹配文本字符,若匹配成功,则文本字符属于所述统一码Unicode区间的表情字符,若匹配失败为普通字符。在上述技术方案中,所述步骤S2中,分离的方法包括通过QML支持的Split文本分割接口,通过所述Split文本分割接口使用正则表达式匹配文本字符,由此筛选出表情字符,剩下的即为普通字符,并将筛选出的表情字符和普通字符分别放入存储字符列表中。在上述技术方案中,所述步骤S3中,所述表情字符指定的文本控件为Text.Normal原始风格方式,不加入描边;所述普通字符指定的文本控件为Text.Outline,为普通字符加入描边。在上述技术方案中,所述步骤S3中,所述动态创建文本控件的方法包括以下步骤:S31、QML提供CreateQmlObject函数用于文本控件动态创建,所述函数提供三个参数Qml、Parent和Filepath;S32、Qml参数提供代码字符串,创建表情字符以及普通字符文本控件;S33、Parent参数为创建的文本控件提供动态放置的位置;S34、Filepath参数为创建文本控件时指明表情字符和普通字符的路径。在上述技术方案中,所述步骤S4中,设置相同布局的方法包括以下步骤:S41、在所述步骤S33中提供的位置加入Rectangle控件,所述Rectangle控件即为每一个字符画一个矩形;S42、将表情字符文本控件和普通字符文本控件加入Rectangle控件中,按照Rectangle控件左上角的位置进行对齐。在上述技术方案中,所述步骤S42中对齐的方法通过计算每个字符的偏移量,并根据步骤S33设定的位置对表情字符及普通字符文本控件进行上下左右对齐。本专利技术还公开一种使用QML对含Emoji表情弹幕描边系统,所述系统包括判断模块、分离模块、创建模块和设置模块;判断模块,用于表情字符的统一码Unicode区间判断文本字符是否为表情字符;分离模块,用于将找出的表情字符和普通字符进行分离;创建模块,用于将分离后的表情字符指定不加入描边的文本控件,将分离后的普通字符指定加入描边的文本控件,并动态创建表情字符和普通字符相对应的文本控件,并对普通字符进行描边;设置模块,用于设置创建模块中表情字符和普通字符对应的文本控件中字符为相同布局,使得每个字符高度间距保持一致。本专利技术还公开一种使用QML对含Emoji表情弹幕描边系统的服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述一种使用QML对含Emoji表情弹幕描边方法的步骤。本专利技术还公开一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述一种使用QML对含Emoji表情弹幕描边方法的步骤。本专利技术一种使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质,具有以下有益效果:通过所述方法对含彩色表情的弹幕加描边时,对彩色表情和普通文字分别指定不同渲染方式,且在Windows中为彩色表情和普通文字单独创建文本控件,并且指定统一布局,实现了对含有彩色表情的弹幕加入描边的效果,极大地丰富了通讯交流。附图说明图1为本专利技术实施例一提供的一种使用QML对含Emoji表情弹幕描边方法的流程图;图2本专利技术实施例二提供一种使用QML对含Emoji表情弹幕描边系统模块图;图3为本专利技术实施例三提供的服务器的结构示意图。具体实施方式本专利技术提供一种使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质。为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有本文档来自技高网
...

【技术保护点】
1.一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述方法包括以下步骤:/nS1、通过表情字符的统一码Unicode区间判断文本字符是否为表情字符;/nS2、将找出的表情字符和普通字符进行分离;/nS3、将分离后的表情字符指定不加入描边的文本控件,将分离后的普通字符指定加入描边的文本控件,并动态创建表情字符和普通字符相对应的文本控件,并对普通字符进行描边;/nS4、设置步骤S3中表情字符和普通字符对应的文本控件中字符为相同布局,使得每个字符高度间距保持一致。/n

【技术特征摘要】
1.一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述方法包括以下步骤:
S1、通过表情字符的统一码Unicode区间判断文本字符是否为表情字符;
S2、将找出的表情字符和普通字符进行分离;
S3、将分离后的表情字符指定不加入描边的文本控件,将分离后的普通字符指定加入描边的文本控件,并动态创建表情字符和普通字符相对应的文本控件,并对普通字符进行描边;
S4、设置步骤S3中表情字符和普通字符对应的文本控件中字符为相同布局,使得每个字符高度间距保持一致。


2.根据权利要求1所述一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述步骤S1中,通过正则表达式匹配文本字符,若匹配成功,则文本字符属于所述统一码Unicode区间的表情字符,若匹配失败为普通字符。


3.根据权利要求2所述一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述步骤S2中,分离的方法包括通过QML支持的Split文本分割接口,通过所述Split文本分割接口使用正则表达式匹配文本字符,由此筛选出表情字符,剩下的即为普通字符,并将筛选出的表情字符和普通字符分别放入存储字符列表中。


4.根据权利要求3所述一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述步骤S3中,所述表情字符指定的文本控件为Text.Normal原始风格方式,不加入描边;
所述普通字符指定的文本控件为Text.Outline,为普通字符加入描边。


5.根据权利要求4所述一种使用QML对含Emoji表情弹幕描边方法,其特征在于,所述步骤S3中,所述动态创建文本控件的方法包括以下步骤:
S31、QML提供CreateQmlObject函数用于文本控件动态创建,所述函数提供三个参数Qml、Parent和Filepath;
S32、Qml参数提供代码字符串,创建表情字符以及普通字符文本控件;
S33、Parent参数为创建的文本控件提供动态放置的位置;

【专利技术属性】
技术研发人员:魏洪
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1