首页> 中国专利> 一种在即时消息中实现字体多样化的方法

一种在即时消息中实现字体多样化的方法

摘要

本发明公开了一种在即时消息中实现字体多样化的方法,该方法是即时消息发送方为输入的即时消息的文本设置一种以上字体格式,并按照所设置的具有一种以上字体格式重新绘制即时消息文本;即时消息发送方根据重新绘制的即时消息文本生成图片文件,并发送携带所生成的图片文件信息的即时消息至即时消息接收方;即时消息接收方在接收到即时消息后显示接收到的图片文件。使用本发明的方法后,可以对即时消息中的文本设置多种字体格式,充分满足用户的个性化需求,而且,设置了多种字体格式的即时消息的组包时间和解包时间不过长,数据包不过大,能够满足传输流畅性的需求。

著录项

  • 公开/公告号CN1913499A

    专利类型发明专利

  • 公开/公告日2007-02-14

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN200510089996.9

  • 发明设计人 李斌;

    申请日2005-08-09

  • 分类号H04L12/58(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人王琦;程殿军

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-17 18:16:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-01-07

    授权

    授权

  • 2007-04-11

    实质审查的生效

    实质审查的生效

  • 2007-02-14

    公开

    公开

说明书

技术领域

本发明涉及即时通信的数据传输技术,特别是涉及一种在即时消息(IM)中实现字体多样化的方法。

背景技术

在网络应用中,利用即时通信工具进行网络聊天最受网民喜爱。但是用户之间的聊天模式发展至今天仍然没有太大变化,在当前的即时通信工具中,IM发送方只能对输入框中的文字设置单一格式的字体,IM接收方以发送方设置的字体显示IM。

图1示出了现有技术对IM进行字体设置的实现方案。从图1可见,对于发送方,在步骤101至103,首先在聊天窗口设置文本格式,然后以所设置的格式在聊天窗口显示输入的文本并保存,再将所输入的文本内容和所设置的文本格式组合为IM消息数据包。在步骤104,发送方将生成的IM消息数据包通过网络传输至接收方。对于接收方,在步骤105至107,首先接收IM消息数据包,然后解析IM消息数据包中的文本内容和字体格式,再按照字体格式对文本内容进行设置并显示该文本内容。

从上述技术方案可见,在现有技术中,发送方设置的字体格式携带在其发送给接收方的消息中,接收方根据解析出的字体格式显示消息文本数据。但是这种文本聊天的方式限制了只能选择一种字体格式设置消息文本,这是因为,如果发送方对输入文字的不同部分选择不同的字体,那么在生成消息数据包时,需要对消息中所有文字分别进行字体识别后才能完成组包过程,造成组包时间过长;相应地,接收方也需要较长的时间对数据包进行解析,造成解包时间过长。而且,由于数据包中的字体格式数据占用较大空间,字体、颜色、大小这几项分别占用2个字节的空间,如果字体格式中仅包含这几项,就需要占用6个字节,如果加上其它设置,如斜体或下划线等则需要占用更多字节,在这种情况下,如果发送方设置的字体格式越多,数据包就越大,因此这种方式不适用于设置多种字体的消息。如上所述,利用现有技术仅能对消息文本设置单一字体格式,从而造成文本聊天模式的单一化,不能满足用户的个性化需求。

发明内容

本发明的主要目的在于提供一种在IM中实现字体多样化的方法,能够使用户对IM中的文本设置多种字体格式,同时保证IM数据包的组包和解包时间以及数据包大小满足IM传输的需要。

本发明的目的是通过如下技术方案实现的:

一种在即时消息中实现字体多样化的方法,其包括:

A、即时消息发送方为输入的即时消息的文本设置一种以上字体格式,并按照所设置的一种以上字体格式重新绘制即时消息文本;

B、即时消息发送方根据重新绘制的即时消息文本生成图片文件,并发送携带所生成的图片文件信息的即时消息至即时消息接收方;

C、即时消息接收方在接收到即时消息后显示接收到的图片文件。

其中,步骤A所述即时消息发送方为即时消息的文本设置一种以上字体格式具体为:即时消息发送方分别确定用户选定的即时消息文本中一个以上目标文本段的起始位置和结束位置,并分别接收用户为所选定的一个以上目标文本段设置的字体格式信息,

步骤A所述重新绘制即时消息文本具体为:即时消息发送方按照用户为所选定的一个以上目标文本段分别设置的字体格式信息重新绘制即时消息文本中的一个以上目标文本段。

其中,步骤B所述即时消息发送方生成图片文件具体为:

即时消息发送方生成临时位图结构;

即时消息发送方获取输入框设备绘制上下文DC,并将该重新绘制的即时消息文本绘制在所获取的输入框DC中;

即时消息发送方将输入框DC上的内容绘制在所生成的临时位图结构中。

其中,所述生成临时位图结构具体为:根据所设置的一种以上字体格式中字体高度最大值、该重新绘制的即时消息文本的行数以及输入框宽度确定临时位图的大小,生成临时位图结构并获取该临时位图结构句柄;

所述将即时消息文本绘制在输入框DC中具体为:按照所确定的临时位图的大小在输入框DC上生成一矩形框并填充背景色,然后将重新绘制的即时消息文本填充在所生成的矩形框中。

所述将输入框DC上的内容绘制在临时位图结构具体为:按照所获取的临时位图结构的句柄将输入框DC上的内容绘制在所生成的临时位图结构中。

其中,所述根据字体高度最大值、行数以及输入框宽度确定临时位图的大小具体为:

将该字体高度最大值和行数的乘积作为临时位图的高度;

将临时位图的高度和输入框宽度的乘积作为临时位图的大小。

优选地,即时消息发送方将所生成的图片文件进行压缩,然后发送携带压缩后的图片文件的即时消息至即时消息接收方。

其中,步骤A之前进一步包括:设置字体变化消息拦截器和字体格式数组,该字体格式数组包含即时消息的默认字体格式信息,

步骤A进一步包括:当即时消息发送方按照所设置的字体格式重新绘制即时消息文本时,字体变化消息拦截器获取所设置的字体格式,并在判断字体格式数组中未包含所获取的字体格式后,将该字体格式的信息保存在字体格式数组中,

步骤A和B之间进一步包括:判断字体格式数组是否包含一个以上字体格式信息,如果是,则执行步骤B;否则退出本流程,执行常规单一字体格式即时消息的发送流程。

其中,步骤B所述发送携带所生成的图片文件的即时消息至即时消息接收方具体为:按照预定的协议格式将所生成的图片文件进行加密后打包,然后发送携带加密的图片文件信息的即时消息数据包至即时消息接收方,

步骤C进一步包括:即时消息接收方对接收到的即时消息进行解密和解析,如果解密且解析成功,则显示接收到的图片文件;否则丢弃该即时消息数据包。

其中,步骤C进一步包括:即时消息接收方将接收到的即时消息保存在即时消息队列中。

其中,步骤B进一步包括:即时消息发送方判断所生成的图片文件是否超过预设的图片大小阈值,

如果超过预设图片大小阈值,则步骤B所述即时消息中的图片文件信息为长文件类型标识,步骤B进一步包括:即时消息发送方将所生成的图片文件放置在传输控制协议TCP端口等待即时消息接收方接收,步骤C进一步包括:即时消息接收方通过TCP通道接收即时消息发送方发来的图片文件;

如果未超过预设图片大小阈值,则步骤B所述即时消息中的图片文件信息为短文件类型标识和图片文件数据,步骤C所述即时消息接收方接收到的图片文件为即时消息中携带的图片文件。

从以上的技术方案可以看出,本发明的方法是IM发送方将设置了多种字体格式的IM文本绘制为图片,将图片文件携带在IM中发送至IM接收方,IM接收方显示该图片文件。使用了本发明的方法,可以对IM中的文本设置多种字体格式,充分满足用户的个性化需求,而且,由于将采用多种字体的文本以图片形式传输,从而使设置了多种字体格式的IM的组包时间和解包时间不过长,数据包不过大,能够充分满足传输流畅性的需求。

附图说明

图1是现有技术对IM中的文本进行字体设置及显示的示范性流程图;

图2是本发明的对IM中的文本进行字体设置及显示的示范性流程图;

图3是根据本发明一具体实施例的IM发送方对IM中的文本设置多种字体的流程图;

图4是根据本发明一具体实施例的IM接收方对接收到的设置多种字体格式的IM进行显示的流程图;

图5是IM发送方利用本发明的方法生成的多字体格式的IM示例;

图6是IM接收方利用本发明的方法接收到的多字体格式的IM示例。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的方法是首先发送方分别为输入的文字设置字体格式;然后根据所设置的字体格式重新绘制消息文本,根据重新绘制的消息文本生成图片文件,并将包含图片文件数据的IM数据包传输至接收方;接收方在接收到IM数据包后显示接收到的图片文件。

图2是根据本发明的方法的示范性流程图。从图2可见,本发明大致包括如下步骤:

步骤201:IM发送方为输入的文本设置多种字体格式;

步骤202:IM发送方在输入的文本上应用所设置的多种字体格式;

步骤203:IM发送方根据输入框内的文本生成图片文件;

步骤204:IM发送方发送包含图片信息的IM至IM接收方;

步骤205:IM接收方接收IM和图片文件;

步骤206:IM接收方显示图片文件。

图3是根据本发明的方法一具体实施例的发送方对IM中的文本设置多种字体的流程图。从图3可见,本实施例中发送方执行如下步骤:

步骤301:在输入框控件中设置字体格式消息拦截器,用于捕获用户在输入框中设置字体格式的消息,并设置字体格式数组,用于保存用户对于一条消息设置过的所有字体格式信息,该字体格式数组中的每个字体格式信息包含在一个数据结构中,一个数据结构包含多个字段,如字体字段、颜色字段、大小字段等,该字体格式数组包含一个初始数据结构,该数据结构中的值是输入框默认的字体格式信息;

步骤302:当用户对输入框中的文本进行字体格式设置时,输入框控件确定用户在输入框中选中文本的起始位置和结束位置,即确定用户本次字体格式设置的目标文本段;

步骤303:IM主窗口控件根据用户在弹出的字体设置框中设置的字体格式,如字体、颜色,并生成包含字体格式信息的设置字体格式消息,将设置字体格式消息发送至输入框控件;

步骤304:输入框控件解析出设置字体格式消息中的字体格式信息,然后根据字体格式信息和选中的目标文本段,对选中的目标文本段应用所设置的字体格式,即根据所设置的字体格式重新绘制目标文本段;

步骤305:消息拦截器检测到输入框控件重新绘制目标文本段的动作,获取所设置的字体格式信息,并将获取到的字体格式信息与字体格式数组中所有数据结构相比较,如果某一数据结构中的值和获取的字体格式信息完全相同,则转到步骤309;否则,转到步骤306;

步骤306:消息拦截器判断目标文本段的起始位置和结束位置是否是当前输入框内整个文本的起始位置和结束位置,如果是,则执行步骤308;否则,执行步骤307;

步骤307:输入框控件在字体格式数组中创建一个新的数据结构,并将所获取的字体格式信息保存在该新创建的数据结构中,然后执行步骤309;

步骤308:删除输入框控件中字体格式数组中的所有字体数据结构,同时根据用户设置的整个文本的字体信息创建一个新的字体格式数据结构,并加入到字体格式数组中进行保存;

步骤309:输入框控件等待用户选择发送输入框中的文本或继续设置字体格式,如果用户选择发送输入框中的文本,则转到步骤310;否则,转到步骤302;

步骤310:输入框控件判断字体格式数组中的数据结构数是否大于或等于2,如果是,执行步骤311;否则转到现有技术的生成消息数据包的流程;

步骤311:输入框控件获取输入框中所设置的字体格式中具有最大高度字体的字体高度最大值、输入框中消息的行数以及当前输入框的宽度;

步骤312:输入框控件根据所获取该字体高度最大值和行数按照以下公式计算消息高度值:消息高度值=字体高度最大值×消息行数;

然后输入框控件根据计算出来的消息高度值和所获取的当前输入框的宽度确定临时位图的大小,生成临时的位图结构并填充位图结构的文件头数据,其中临时位图结构的大小=消息高度值×输入框的宽度;

步骤313:输入框控件获取输入框的设备绘制上下文(DC,DeviceContext),根据计算出来的消息高度值和所获取的输入框的宽度在输入框DC上生成一矩形框,并填充预定颜色的背景,优选为白色背景;

步骤314:输入框控件将输入框中的文本绘制在输入框DC上的矩形框中;

步骤315:输入框控件按照该临时的位图结构句柄,将捕获的输入框DC的内容绘制在该临时的位图结构中,并将位图结构生成位图图片,然后将所生成的位图图片压缩为JPG图片文件;这里,采用JPG格式的原因是因为能够在失真率很低的情况下,使得图片文件的大小不会太大,保证发送过程的顺畅;当然在实际中,根据需要也可以采用别的格式。

步骤316:判断该JPG图片文件的大小是否超过预设的文件大小阈值,优选地,文件大小阈值为1k,如果超过阈值,则文件类型属于长文件,执行步骤317;否则,文件类型属于短文件,执行步骤318;

步骤317:IM主窗口控件按照一定协议生成IM数据包,并在IM数据包中携带多字体格式消息类型标识、长文件类型标识后将IM发送至接收方,同时将JPG图片文件放置在TCP通道处等待接收方接收,然后结束;

步骤318:IM主窗口控件按照一定协议生成IM数据包,并在IM数据包中携带多字体格式消息类型标识、短文件类型标识和JPG图片文件数据后将IM发送至接收方。

如此,发送方完成了生成并发送多字体IM的过程。下面说明接收方接收多字体IM的过程。

图4是根据本发明一具体实施例的IM接收方对接收到的设置多种字体格式的IM进行显示的流程图。从图4可见,本实施例中接收方执行如下步骤:

步骤401:接收方在UDP通道接收发送方发来的IM数据包;

步骤402:通过按照一定协议对接收到的IM数据包解密并解析来判断该IM是否是有效的消息,如果有效,则执行步骤403;否则丢弃该消息,然后结束;

步骤403:判断接收到的IM消息中的文件类型标识是长文件类型标识还是短文件类型标识,如果是长文件类型标识,则说明通过UDP通道接收到的IM数据包中未包含JPG图片文件,执行步骤404;如果是短文件类型标识,说明通过UDP通道接收到的IM数据包中已经包含了JPG图片文件,直接执行步骤405,这里采用的长文件与短文件的类型区分是根据需要传输的数据包的大小为判断标准,一般来说,如果需要传输的数据包中图片文件大于1k字节,则属于长文件类型,否则属于短文件类型;

步骤404:由于长文件类型数据包过大,因此需要进行有连接的Socket的传输模式,即打开TCP通道,通过TCP通道接收JPG图片文件;

步骤405:通知用户有消息到来,在用户打开的聊天窗口中显示接收到的JPG图片,JPG图片文件显示了IM发送方输入的具有多样化字体的文本;

步骤406:将接收到的消息保存到消息队列中。

如此,IM接收方完成了接收并显示多字体IM的过程。

在本实施例中,IM发送方采用JPG格式对图片文件进行压缩,这是因为采用JPG格式的压缩能够在失真率很低的前提下,保证图片文件不会过大,从而保证发送过程的顺畅,是较佳的实施方式。应该理解,在本发明的其它实施例中,IM发送方也可以采用其它任何格式对图片文件进行压缩,或者也可以不对图片文件进行压缩而直接将位图文件作为图片文件发送。

图5是IM发送方利用本发明的方法生成的多字体格式的IM示例。从图5可见,IM发送方在IM的文本中共使用了三种字体格式,这三种字体格式的文本段一起显示在发送方的输入框中。

图6是IM接收方利用本发明的方法接收到的多字体格式的IM示例。从图6可见,IM接收方接收到的IM的文本中共使用了三种字体格式,这三种字体格式的文本段同时显示在接收方的显示框中。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号