1.本技术实施例涉及电子信息技术领域,尤其涉及一种画面旋转方法及其电子设备、存储介质。
背景技术:2.目前,直播活动在人们的日常生活中越来越普遍。但是在现有的直播平台中,用户在进行直播时,所有的画面只能固定一个方向,如果在直播过程中有图片或者画面出现了非正常角度,导致影响观看者的观感,然而这时用户无法对画面的内容进行角度调整,只能选择对直播的设备进行调整,进而使得直播画面的角度变为用户需要的角度,如此就导致用户调整不便影响直播效率,也可能出现调整过程中损坏设备的风险等问题。
技术实现要素:3.有鉴于此,本技术实施例提供一种画面旋转方法及电子设备,以至少部分解决上述问题。
4.根据本技术实施例的第一方面,提供了一种画面旋转方法,包括:
5.在用户界面的画面显示区域显示的当前画面,画面显示区域的形状为矩形;;
6.检测用户操作,获取偏转度数和旋转度数,偏转度数与旋转度数均由数值与符号组成,数值均为90度的整数倍,符号的确定方法为向顺时针方向旋转的度数为正,向逆时针方向旋转的度数为负;
7.将偏转度数与旋转度数相加得到最终偏转值;
8.根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;
9.根据四维向量矩阵中的画面的大小和角度进行画面绘制。
10.可选地,用户界面还包括管理菜单区域;检测用户操作,包括检测用户在画面显示区域或管理菜单区域的用户操作。
11.可选地,检测用户操作,包括,检测用户在画面显示区域或管理菜单区域对应的触摸板上的用户操作。
12.可选地,检测用户操作,获取偏转度数和旋转度数,包括,检测用户操作;根据用户操作获取当前画面的偏转度数并显示菜单栏,菜单栏用于提供旋转度数的选项;响应于用户的选择操作,获取旋转度数。
13.可选地,菜单栏提供的旋转度数的选项包括顺时针旋转90度,逆时针旋转90度,旋转180度,镜像;响应于用户在菜单栏的选择操作,获取选择操作对应的菜单栏中的旋转度数。
14.根据本技术实施例的第二方面,提供了一种电子设备,包括:
15.界面显示模块,用于显示当前画面和旋转后的画面;
16.检测模块,用于检测用户操作;
17.获取模块,用于获取当前画面的偏转度数和将当前画面旋转为用户需要的画面的旋转度数;
18.处理模块,用于将偏转度数与旋转度数相加得到最终偏转值,并根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;
19.输出模块,用于根据四维向量矩阵中的画面的大小和角度进行画面绘制。
20.可选地,所述获取模块,还用于根据所述用户操作获取所述当前画面的偏转度数并显示菜单栏,所述菜单栏用于提供旋转度数的选项;响应于用户的选择操作,获取所述旋转度数。
21.可选地,所述界面显示模块包括画面显示区域和管理菜单区域,所述检测用户操作,包括检测用户在所述画面显示区域或所述管理菜单区域的用户操作。
22.根据本技术实施例的第三方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-5中任一所述的画面旋转方法。
23.根据本技术实施例的第四方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-5中任一所述的画面旋转方法对应的操作。
24.本技术实施例的画面旋转方法及其电子设备、存储介质,在用户界面的画面显示区域显示的当前画面,画面显示区域的形状为矩形;检测用户操作,获取当前画面的偏转度数和旋转度数,偏转度数与旋转度数均由数值与符号组成,数值均为90度的整数倍,符号的确定方法为向顺时针方向旋转的度数为正,向逆时针方向旋转的度数为负;将偏转度数与旋转度数相加得到最终偏转值;根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;根据四维向量矩阵中的画面的大小和角度进行画面绘制。通过该画面旋转方法,实现了在不进行硬件设备调整的情况下,对画面角度进行调整,从而降低了调整硬件设备造成损坏的风险,同时提高了调整画面的效率。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
26.图1为本技术一种画面旋转方法的实施例的流程图
27.图2为本技术一种电子设备的结构框图;
28.图3为本技术一种电子设备的用户界面的示意图。
具体实施方式
29.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
30.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
31.实施例一、
32.本技术实施例一提供一种画面旋转方法,参见图1,该画面旋转方法包括:
33.s101、在用户界面的画面显示区域显示的当前画面。
34.具体地,画面显示区域的形状为矩形,根据用户界面显示的当前画面确定当前画面的偏转度数,并基于当前画面的偏转度数确定将当前画面旋转为用户需要的画面的旋转度数。根据用户界面显示的当前画面可以确定当前画面是在正常画面的基础上顺时针或逆时针偏转的偏转度数,例如,当前画面的偏转度数为顺时针偏转90度,当需要将当前画面旋转为正常画面时,根据当前画面的偏转度数可以确定将当前画面旋转为用户需要的画面的旋转度数为逆时针旋转90度。
35.s102、检测用户操作,获取当前画面的偏转度数和旋转度数。
36.需要说明的是,偏转度数与旋转度数均由数值与符号组成,数值均为90度的整数倍,例如,偏转度数与旋转度数的数值可以是包括90度、180度或270度,符号的确定方法为:向顺时针方向旋转的度数为正,向逆时针方向旋转的度数为负,例如,偏转度数为顺时针偏转90度,即偏转度数为90度,旋转度数为逆时针旋转90度。即旋转度数为负90度,可以表示为-90度。
37.可选地,用户界面还可以包括管理菜单区域,画面显示区域可以显示当前画面和旋转后的画面,管理菜单区域可以显示可供用户操作的选项,例如,有多个摄像头拍摄画面时,用户可以选择不同的摄像头从而得到不同摄像头拍摄的画面,检测用户在所述画面显示区域或所述管理菜单区域的用户操作,均可以实现对画面的旋转操作,使得用户操作更方便,操作形式更多样化。用户操作的选项比如为:使用鼠标在画面显示区域右击,或者使用鼠标在管理菜单区域中选择的摄像头选项处右击。
38.可选地,检测用户操作可以是检测用户在画面显示区域或管理菜单区域对应的触摸板上的操作。具体地,显示屏幕可以为触摸屏,用户可以通过在画面显示区域或管理菜单区域进行触屏点击进行操作。本实施例的画面旋转操作适用于触屏操作,可以使得用户操作更简便。
39.可选地,检测用户操作,获取偏转度数和旋转度数,包括,检测用户操作;根据获取到的当前画面的偏转度数并显示菜单栏,菜单栏用于提供旋转度数的选项;响应于用户的选择操作,获取旋转度数。
40.具体地,用户操作可以是使用鼠标右击画面显示区域或管理菜单区域当前画面对应的摄像头,根据获取到的当前画面的句柄,得到当前画面的偏转度数。显示得菜单栏可以包括旋转度数的选项,例如顺时针旋转90度,逆时针旋转90度,旋转180度,镜像等,菜单栏还可以包括其它可供用户操作的选项,例如,用于删除当前画面的删除选项,用于更改当前画面名称的重命名选项,用于移动当前画面位置的选项如向上移动、向下移动、移至顶部、移至底部等,用于更改画面大小的适应屏幕选项,以及可以更改画面属性的属性选项。通过菜单栏提供旋转度数的选项可以使得用户操作更便捷,从而提升用户操作体验。
41.一个句柄是指一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值本实施例中,获取画面的句柄可以有多种方法,例如使用findwindow函数获取画面句柄,使用enumwindows和enumchildwindows函数以及相对的回调函数enumwindowsproc和enumchildwindowsproc获取所有顶层画面的句柄以及它们的子画面的句柄,也可以使用getdesktopwindow和getnextwindow函数得到画面句柄。
42.s103、根据偏转度数与旋转度数,得到最终偏转值。
43.具体地,最终偏转值的计算方法为:最终偏转值=偏转度数+旋转度数,例如,偏转度数为顺时针偏转90度,旋转度数为逆时针旋转90度,则最终偏转值=顺时针偏转90度+逆时针旋转90度=90度+(-90度)=0度,即最终偏转值为0度。最终偏转值是相对于偏转度数为0度的画面的偏转值,即最终偏转值为0度则表示偏转后的画面为偏转度数为0度的画面,即为正常画面。
44.s104、根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中。
45.具体地,将最终偏转值设置到画面属性中,通过matrix4接口将当前画面需要绘制的大小和角度保存到一个四维向量矩阵中。matrix4是一种提供webgl的4*4矩阵操作的方法库,可以通过matrix4中的函数,将当前画面需要绘制的大小和角度进行处理并保存结果。例如可以通过setidentity()函数将当前画面需要绘制的大小和角度初始化为单位阵的,使用setscale(x,y,z)函数进行缩放变换,再经过settranslate(x,y,z)函数和rotate(angle,x,y,z)函数进行多次的平移旋转变换后,将结果存储在matrix4中。
46.s105、根据四维向量矩阵中的画面的大小和角度进行画面绘制。
47.具体地,根据四维向量矩阵中的画面的大小和角度进行画面绘制的方法可以是用投影矩阵,例如正交投影和透视投影,其中,正交投影是投影线垂直于投影面的投影透视投影属于中心投影。透视投影图是从某个投射中心将物体投射到单一投影面上所得到的图形。
48.本技术实施例的画面旋转方法,在用户界面的画面显示区域显示的当前画面,所述画面显示区域的形状为矩形;检测用户操作,获取偏转度数和旋转度数,偏转度数与旋转度数均由数值与符号组成,数值均为90度的整数倍,符号的确定方法为向顺时针方向旋转的度数为正,向逆时针方向旋转的度数为负;将偏转度数与旋转度数相加得到最终偏转值;根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;根据四维向量矩阵中的画面的大小和角度进行画面绘制。通过该画面旋转方法,实现了在不进行硬件设备调整的情况下,对画面角度进行调整,从而降低了调整硬件设备造成损坏的风险,同时提高了调整画面的效率。
49.实施例二、
50.结合上述实施例所描述的画面旋转方法,本技术实施例二提供一种电子设备,用于执行上述实施例一描述的任一画面旋转方法。
51.参见图2,数据处理装置20包括:
52.界面显示模块201,用于显示当前画面和旋转后的画面;
53.检测模块202,用于检测用户操作;
54.获取模块203,用于获取当前画面的偏转度数和将当前画面旋转为用户需要的画面的旋转度数;
55.处理模块204,用于将偏转度数与旋转度数相加得到最终偏转值,并根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;
56.输出模块205,用于根据四维向量矩阵中的画面的大小和角度进行画面绘制。
57.可选地,所述获取模块,还用于根据所述用户操作获取所述当前画面的偏转度数
并显示菜单栏,所述菜单栏用于提供旋转度数的选项;响应于用户的选择操作,获取所述旋转度数。
58.可选地,所述界面显示模块包括画面显示区域和管理菜单区域,所述检测用户操作,包括检测用户在所述画面显示区域或所述管理菜单区域的用户操作。
59.可选地,参见图3,界面显示模块201可以包括画面显示区域、管理菜单区域、评论显示区域、发送信息区域和多媒体操作区域,用户的旋转画面操作可以在画面显示区域和管理菜单区域中的任一区域进行,多媒体操作区域包括麦克风和扬声器音量调节按钮、开始/结束按钮等。
60.申请实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的画面旋转方法。
61.本技术实施例还提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-5中任一所述的画面旋转方法对应的操作。
62.本技术实施例的电子设备,在用户界面的画面显示区域显示的当前画面,所述画面显示区域的形状为矩形;检测用户操作,获取偏转度数和旋转度数,偏转度数与旋转度数均由数值与符号组成,数值均为90度的整数倍,符号的确定方法为向顺时针方向旋转的度数为正,向逆时针方向旋转的度数为负;将偏转度数与旋转度数相加得到最终偏转值;根据最终偏转值,将当前画面偏转后需要绘制的画面的大小和角度保存到四维向量矩阵中;根据四维向量矩阵中的画面的大小和角度进行画面绘制。通过该画面旋转方法,实现了在不进行硬件设备调整的情况下,对画面角度进行调整,从而降低了调整硬件设备造成损坏的风险,同时提高了调整画面的效率。
63.需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
64.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
65.以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。