一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于远程云桌面的鼠标处理方法、装置、存储介质及设备与流程

2021-11-09 20:11:00 来源:中国专利 TAG:


1.本发明涉及远程桌面技术领域,特别是涉及基于远程云桌面的鼠标处理方法、装置、存储介质及设备。


背景技术:

2.云游戏是以云计算为基础的游戏方式。在云游戏的运行模式下,所有游戏都在远程服务器运行,远程服务器将捕获完毕的游戏画面等数据编码后通过网络传送给用户。在客户端,用户的游戏设备不需要任何高端处理器和显卡,只要具备基本的视频解码渲染能力即可。
3.现阶段,随着云游戏的不断推广,越来越多的用户认可并青睐云游戏,云游戏的普及范围也越来越大。为了实现云游戏也即远程云桌面的控制,必须做好控制端对数据的处理,包含视频、音频以及鼠标的数据。其中,鼠标的处理十分重要。通常,可按鼠标指针类型将鼠标分为三类:1、指针类型是单色鼠标指针,它是单色位图。位图的大小由宽度和高度以1位/像素(bpp)的独立于设备的位图(dib)格式和一个相同大小的1bpp dib格式xor掩码指定;2、指针类型是彩色鼠标指针,它是彩色位图。例如:位图的大小由宽度和高度以32bpp argb dib格式指定;3、指针类型是带掩码值的彩色鼠标指针,彩色鼠标指针是32bpp argb格式的位图和一个相同大小的32bpp dib格式掩码。唯一允许的掩码值为0和0xff(不进行异或运算或进行异或运算两种情况)。当mask值(掩码值)为0时,rgb值应替换系统光标,而当掩码值为0xff时,对rgb值和屏幕像素执行xor操作,得到的结果再替换系统光标。
4.对于彩色鼠标指针,在控制端复现时只需替换系统光标,而对于单色鼠标指针以及带掩码值的彩色鼠标指针来说,他们都是由判定掩码值,若掩码不为0,将位图颜色像素值与屏幕背景颜色像素值进行异或运算(xor操作),得到一个新的融合后的像素。例如工字型鼠标(单色光标)在白色背景下为黑色,在蓝色背景下显示的为棕色。当远程服务器将远程桌面捕获的鼠标数据发送至控制端时,若控制端是通过电脑应用软件连接远程服务器时,电脑应用软件会直接接入图形处理api将鼠标数据与用户桌面的背景色像素直接进行异或运算;若控制端为电脑网页或是平板和手机的应用(app)或网页(wap)连接远程服务器时,此时无法直接调用api去处理数据(即无法直接进行异或运算),需通过编写代码实现此功能,但由此会消耗大量的设备的性能,且会造成鼠标出现一定的延时性。
5.行业内当前的做法基本是直接将远程传输到本地设备的鼠标数据做显示处理,不再与本地屏幕对应位置的像素进行异或运算,所以本地显示的鼠标会与远程桌面中的背景色无明显差异,这让用户无法识别,用户体验较差。仍以工字型光标为例,在灰黑色背景下,若鼠标指针还是显示为黑色,用户就很难识别该鼠标指针。


技术实现要素:

6.鉴于以上所述现有技术的缺点,本发明的目的在于提供基于远程云桌面的鼠标处理方法、装置、存储介质及设备,用于解决现有技术中的以上问题。
7.为实现上述目的及其他相关目的,本发明提供一种基于远程云桌面的鼠标处理方法,应用于向用户终端提供远程云桌面的远程服务器,所述方法包括:获取远程云桌面的鼠标数据,并根据所述鼠标数据判断鼠标指针类型;若为单色鼠标指针,则将其色彩位为1的像素点转换为黑色像素点,并在指针边缘设置白边;若为带掩码值的彩色鼠标指针且阿尔法通道非0,则保留其像素点的原色,并在指针边缘设置白边;将处理后的鼠标数据发送至所述用户终端,以供所述用户终端绘制鼠标并将其显示于屏幕的对应位置。
8.于本发明一实施例中,若判断出鼠标为带掩码值的彩色鼠标指针且阿尔法通道为0,所述方法还包括:判断各像素点的值是否相同;若判断结果为相同,则将所述鼠标判定为异常鼠标,并将所述鼠标的隐藏状态发送至所述用户终端。
9.于本发明一实施例中,若判断结果为不相同,所述方法还包括:判断各有色像素点的相邻像素点是否存在透明像素点;若一有色像素点的相邻像素点存在透明像素点,则该有色像素点即为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0。
10.于本发明一实施例中,将所述单色鼠标指针的色彩位为1的像素点转换为黑色像素点并在指针边缘设置白边,具体包括:将所述鼠标数据转化为具有阿尔法通道的像素格式的位图;将所述单色鼠标指针的色彩位为1的各像素点在所述位图中转换为黑色;将所述单色鼠标指针的色彩位为0的各像素点在所述位图中转换为透明;判断所述位图的各黑色像素点的相邻像素点是否存在透明像素点;若一黑色像素点的相邻像素点存在透明像素点,则该黑色像素点即为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0。
11.于本发明一实施例中,所述具有阿尔法通道的像素格式的位图为32位位图、40位位图或48位位图。
12.于本发明一实施例中,在所述带掩码值的彩色鼠标指针的边缘设置白边,具体包括:判断各有色像素点的相邻像素点是否存在透明像素点;若一有色像素点的相邻像素点存在透明像素点,则该有色像素点即为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0。
13.于本发明一实施例中,所述将处理后的鼠标数据发送至所述用户终端,具体包括:将处理后的鼠标数据编码成png格式发送至所述用户终端。
14.为实现上述目的及其他相关目的,本发明提供一种基于远程云桌面的鼠标处理装置,应用于向用户终端提供远程云桌面的远程服务器,所述装置包括:鼠标数据获取模块,用于获取远程云桌面的鼠标数据;鼠标数据处理模块,用于根据所述鼠标数据判断鼠标指针类型;若为单色鼠标指针,则将其色彩位为1的像素点转换为黑色像素点,并在指针边缘设置白边;若为带掩码值的彩色鼠标指针且阿尔法通道非0,则保留其像素点的原色,并在指针边缘设置白边;鼠标数据发送模块,用于将所述鼠标数据处理模块输出的鼠标数据发送至所述用户终端,以供所述用户终端绘制鼠标并将其显示于屏幕的对应位置。
15.为实现上述目的及其他相关目的,本发明提供一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序被处理器加载执行时,实现所述的基于远程云桌面的鼠标处理方法。
16.为实现上述目的及其他相关目的,本发明提供一种电子设备,包括:处理器及存储
器;其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行所述的基于远程云桌面的鼠标处理方法。
17.如上所述,本发明的基于远程云桌面的鼠标处理方法、装置、存储介质及设备,针对用户设备(电脑、平板、智能手机等)通过网页(web/wap)或应用(app)连接远程服务器的场景下,远程服务器在进行鼠标捕获后编码压缩传输到用户设备前,对于掩码值不为0的单色鼠标指针:将鼠标数据转化为32bpp、40bpp或48bpp中的位图,并将色彩位为1的像素点替换为黑色rgb值,再将鼠标边缘全部描上白色边;对于掩码值不为0的彩色鼠标指针:将鼠标中的位图的原像素值保留,再将鼠标边缘全部描上白色边。本发明的技术方案计算量小,且能达到以下效果:在深色背景下,因为有白色边框的存在,用户很容易定位到鼠标的位置;而在浅色背景下,鼠标为黑色或是保留了其原色,也很容易定位鼠标位置。
附图说明
18.图1显示为本发明一实施例中的基于远程云桌面的鼠标处理方法的应用场景示意图。
19.图2显示为本发明一实施例中的基于远程云桌面的鼠标处理方法的流程示意图。
20.图3显示为本发明另一实施例中的基于远程云桌面的鼠标处理方法的流程示意图。
21.图4显示为本发明一实施例中的基于远程云桌面的鼠标处理装置的模块示意图。
22.图5显示为本发明一实施例中的电子设备的结构示意图。
具体实施方式
23.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
24.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
25.针对两类掩码不为0的鼠标指针在用户终端通过网页或是应用连接远程服务器的场景,本发明可以让用户很容易地明确鼠标位置,方便用户对光标与背景进行分辨并进入后续远程云桌面的操控,且由于不需要进行很多复杂计算,运算量小,对于客户端的性能消耗也较小,延时小,能够达到一劳永逸的效果。
26.如图1所示,显示为本发明的基于远程云桌面的鼠标处理方法的一种应用场景示意图。远程服务器用于运行云游戏或其他云应用,并向用户终端(如台式机、便携式电脑、智能手机、平板电脑等)提供云游戏或云应用的运行音视频数据。用户终端根据这些运行音视频数据复现出游戏画面和音效或应用画面和音效,并通过屏幕和喇叭予以展示。
27.请参阅图2,本发明的基于远程云桌面的鼠标处理方法,由图1中的远程服务器负
责执行,包括如下步骤:
28.s21:获取远程云桌面的鼠标数据,并根据所述鼠标数据判断鼠标指针类型;若为单色鼠标指针,则执行步骤s22;若为带掩码值的彩色鼠标指针且阿尔法通道非0,则执行步骤s23;
29.具体的,用户终端中安装有用于与远程服务器交互的客户端,如:台式电脑的网页应用程序、平板电脑和智能手机的应用程序(app)、wap(h5)等,远程服务器通过捕获远程云桌面的鼠标数据;根据鼠标数据的格式就能判断出鼠标指针的类型。判断原理可参见背景技术中的介绍,由于不是本发明的重点故于此不重复赘述。
30.s22:将单色鼠标指针的色彩位为1的像素点转换为黑色像素点,并在指针边缘设置白边;
31.具体的,若步骤s21的判断结果为单色鼠标指针,则执行步骤s2201~s2205:
32.s2201:将所述鼠标数据转化为具有阿尔法通道的像素格式的位图,例如32bpp dib的位图、40bpp dib的位图或48bpp dib的位图;
33.s2202:将所述单色鼠标指针的色彩位为1的各像素点在所述位图中转换为黑色rgb值;
34.s2203:将所述单色鼠标指针的色彩位为0的各像素点在所述位图中转换为透明,也即像素点的alpha位被变更为0;
35.需要说明的是,本发明不限定s2202和s2203的执行顺序,二者也可同时进行。
36.s2204:判断所述位图的各黑色像素点的相邻像素点是否存在透明像素点;
37.具体的,将转换为黑色rgb值的像素点的上下左右的像素点进行判定,从而判断各黑色像素点的相邻像素点是否存在透明像素点。
38.s2205:若一黑色像素点的相邻像素点存在透明像素点,则该黑色像素点即为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0;
39.具体的,若转换为黑色rgb值的像素点的上下左右的像素点中至少存在一个透明像素点,则该黑色像素点就为该单色鼠标指针的边缘像素点,需将所述边缘像素点相邻的透明像素点设置为白色rgb值且修改alpha位为非0。
40.s23:保留带掩码值的彩色鼠标指针的像素点的原色,并在指针边缘设置白边;
41.具体的,若步骤s21的判断结果为带掩码值的彩色鼠标指针且阿尔法通道非0,则保留原位图的rgb值,并执行步骤s231~s232:
42.s231:判断各有色像素点的相邻像素点是否存在透明像素点;若一有色像素点的相邻像素点存在透明像素点,则执行步骤s232;
43.具体的,将有色像素点的上下左右的像素点进行判定,从而判断各有色像素点的相邻像素点是否存在透明像素点;
44.s232:将该有色像素点判定为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0。
45.具体的,若有色像素点的上下左右的像素点中至少存在一个透明像素点,则该有色像素点就为该带掩码的彩色鼠标指针的边缘像素点,需将所述边缘像素点相邻的透明像素点设置为白色rgb值且修改alpha位为非0。
46.s24:将处理后的鼠标数据发送至所述用户终端,以供所述用户终端绘制鼠标并将其显示于屏幕的对应位置。
47.具体的,远程服务器将经以上处理的鼠标数据编码成png格式发送至客户端。客户端接收到这些数据后在对应的位置重新绘制光标,并将本地鼠标进行隐藏,或者,用重新绘制的光标替换本地鼠标。
48.如图3所示,在另一实施例中,若步骤s21的判断结果为带掩码值的彩色鼠标指针且阿尔法通道为0,则执行步骤s31~34:
49.s31:判断各像素点的值是否相同(无色或纯色);若判断结果为相同,则执行s32;若判断结果为不相同,则执行s33;
50.s32:将所述鼠标判定为异常鼠标,并将所述鼠标的隐藏状态发送至所述用户终端;
51.具体的,于此,每个像素点的rgb值相同,远程服务器将处理后的鼠标数据编码成png格式发送至客户端。一般而言,纯色鼠标为一种错误鼠标,一般不会出现这种情况,若出现则让用户终端将其当作透明鼠标处理即可。
52.s33:判断各有色像素点的相邻像素点是否存在透明像素点;若判断结果为存在,则执行s34;
53.具体的,将有色像素点的上下左右的像素点进行判定,从而判断各有色像素点的相邻像素点是否存在透明像素点。
54.s34:若一有色像素点的相邻像素点存在透明像素点,则该有色像素点即为边缘像素点,将所述边缘像素点相邻的透明像素点设置为白色,并将该透明像素点的阿尔法通道设置为非0;
55.具体的,若有色像素点的上下左右的像素点中至少存在一个透明像素点,则该有色像素点就为该带掩码的彩色鼠标指针的边缘像素点,需将所述边缘像素点相邻的透明像素点设置为白色rgb值且修改alpha位为非0。
56.实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。基于这样的理解,本发明还提供一种计算机程序产品,包括一个或多个计算机指令。所述计算机指令可以存储在计算机可读存储介质中。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如:软盘、硬盘、磁带)、光介质(如:dvd)、或者半导体介质(如:固态硬盘solid state disk(ssd))等。
57.参阅图4,本实施例提供一种基于远程云桌面的鼠标处理装置,作为一款软件搭载于电子设备中,以在运行时执行前述方法实施例所述的基于远程云桌面的鼠标处理方法。由于本系统实施例的技术原理与前述方法实施例的技术原理相似,因而不再对同样的技术细节做重复性赘述。
58.本实施例的基于远程云桌面的鼠标处理装置具体包括:鼠标数据获取模块、鼠标数据处理模块、鼠标数据发送模块。鼠标数据获取模块用于执行前述方法实施例介绍的步骤s21,鼠标数据处理模块用于执行前述方法实施例介绍的步骤s22~s23,鼠标数据发送模块用于执行前述方法实施例介绍的步骤s24。
59.本领域技术人员应当理解,图4实施例中的各个模块的划分仅仅是一种逻辑功能
的划分,实际实现时可以全部或部分集成到一个或多个物理实体上。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,鼠标数据处理模块可以为单独设立的处理元件,也可以集成在某一个芯片中实现,此外,也可以以程序代码的形式存储于存储器中,由某一个处理元件调用并执行鼠标数据处理模块的功能。其它模块的实现与之类似。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
60.参阅图5,本实施例提供一种电子设备50,电子设备50可以是台式机等设备。详细的,电子设备50至少包括通过总线51连接的:存储器52、处理器53,其中,存储器52用于存储计算机程序,处理器53用于执行存储器52存储的计算机程序,以执行前述方法实施例中的全部或部分步骤。
61.上述提到的系统总线可以是外设部件互连标准(peripheral pomponent interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
62.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
63.综上所述,本发明的基于远程云桌面的鼠标处理方法、装置、存储介质及设备,以较小的计算量实现了:在深色背景下,因为有白色边框的存在,用户很容易定位到鼠标的位置;而在浅色背景下,鼠标为黑色或是保留了其原色,也很容易定位鼠标位置。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
64.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献