CN109814784B - 图片旋转方法、装置、计算机设备和存储介质 - Google Patents
图片旋转方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109814784B CN109814784B CN201910012303.8A CN201910012303A CN109814784B CN 109814784 B CN109814784 B CN 109814784B CN 201910012303 A CN201910012303 A CN 201910012303A CN 109814784 B CN109814784 B CN 109814784B
- Authority
- CN
- China
- Prior art keywords
- rotation
- point
- picture
- rotated
- current position
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及显示领域,尤其是一种图片旋转方法、装置、计算机设备和存储介质。所述方法包括:接收针对待旋转图片的旋转指令,并获取与旋转指令对应的旋转中心点;判断与待旋转图片对应的操作点是否移动;当确定操作点移动时,则记录操作点的上一位置和当前位置,并通过第一向量表示上一位置,第二向量表示当前位置;计算第一向量和所述第二向量的内积得到旋转角度对应的余弦值,并通过反余弦函数以及余弦值计算得到旋转角度;根据所计算得到的旋转角度旋转待旋转图片后,将当前位置记录上一位置,将操作点移动后的位置记录当前位置,并继续通过第一向量表示上一位置,第二向量表示当前位置,直至所述操作点不再移动。采用本方法能够提高处理效率。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种图片旋转方法、装置、计 算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了线上H5页面制作技术等,用户可以在网页 上制作各个各样自己喜欢的H5页面,例如婚礼邀请函等。然而用来实现拖拽鼠 标让元素进行旋转的解决方案大都利用旋转中心点到鼠标按下点和旋转中心点 到鼠标移动点之间的夹角正切值来计算出旋转的角度,并使文本或图片旋转该 角度。
但是,利用正切值计算角度比较麻烦的一点是:当旋转角度为π/2的奇数倍 时,由于tan(π/2*k)=+∞(k=2n+1),导致在计算角度的时候,需要把这些旋转 零界点区分开来,单独处理,这种计算过程增加了计算旋转角度的复杂程度, 从而导致图片显示卡顿。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高处理效率的图片旋 转方法、装置、计算机设备和存储介质。
一种图片旋转方法,所述方法包括:
接收针对待旋转图片的旋转指令,并获取与所述旋转指令对应的旋转中心 点;
判断与所述待旋转图片对应的操作点是否移动;
当确定所述操作点移动时,则记录操作点的上一位置和当前位置,并通过 第一向量表示所述上一位置,第二向量表示所述当前位置;
计算所述第一向量和所述第二向量的内积得到旋转角度对应的余弦值,并 通过反余弦函数以及所述余弦值计算得到旋转角度;
根据所计算得到的旋转角度旋转所述待旋转图片后,将所述当前位置记录 上一位置,将所述操作点移动后的位置记录当前位置,并继续通过第一向量表 示所述上一位置,第二向量表示所述当前位置,直至所述操作点不再移动。
在其中一个实施例中,所述记录操作点的上一位置和当前位置,包括:
获取所述操作点的移动时间,所述操作点的移动时间为所述操作点由上一 位置移动到当前位置所用的时间;
判断所述移动时间是否等于预设周期;
当所述移动时间等于预设周期时,则获取移动后的操作点的位置作为当前 位置。
在其中一个实施例中,所述通过反余弦函数以及所述余弦值计算得到旋转 角度,包括:
通过反余弦函数以及所述余弦值计算得到初始角度;
根据所述上一位置、所述当前位置、所述旋转中心点以及旋转方向判断所 述旋转角度是否大于180度;
当所述旋转角度大于180度时,则根据所述初始角度计算得到旋转角度;
当所述旋转角度未大于180度时,则将所述初始角度作为旋转角度。
在其中一个实施例中,所述接收针对待旋转图片的旋转指令,包括:
判断操作点是否位于待旋转图片的区域中;
当所述操作点位于所述待旋转图片的区域中时,则判断是否接收到点击操 作;
当接收到点击操作时,则生成针对所述待旋转图片的旋转指令。
在其中一个实施例中,所述获取与所述旋转指令对应的旋转中心点,包括:
显示与所述待旋转图片对应的待选旋转点;
判断所述操作点是否移动至其中一个待选旋转点;
当确定所述操作点移动至其中一个待选旋转点时,则将所述操作点所在的 待选旋转点作为旋转中心点。
在其中一个实施例中,所述获取与所述旋转指令对应的旋转中心点,包括:
接收输入的点击操作,并获取所述操作点的当前所在位置;
将所述操作点的当前所在位置作为所述旋转中心点。
在其中一个实施例中,所述接收针对待旋转图片的旋转指令之后,还包括:
接收输入的针对已旋转图片的选择指令;
根据所述选择指令获取对应的已旋转图片的当前旋转角度;
根据所述当前旋转角度旋转所述待旋转图片。
一种图片旋转装置,所述装置包括:
第一接收模块,用于接收针对待旋转图片的旋转指令,并获取与所述旋转 指令对应的旋转中心点;
判断模块,用于判断与所述待旋转图片对应的操作点是否移动;
记录模块,用于当确定所述操作点移动时,则记录操作点的上一位置和当 前位置,并通过第一向量表示所述上一位置,第二向量表示所述当前位置;
计算模块,用于计算所述第一向量和所述第二向量的内积得到旋转角度对 应的余弦值,并通过反余弦函数以及所述余弦值计算得到旋转角度;
旋转模块,用于根据所计算得到的旋转角度旋转所述待旋转图片后,将所 述当前位置记录上一位置,将所述操作点移动后的位置记录当前位置,并继续 通过第一向量表示所述上一位置,第二向量表示所述当前位置,直至所述操作 点不再移动。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序, 所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处 理器执行时实现上述任一项所述的方法的步骤。
上述图片旋转方法、装置、计算机设备和存储介质,首先确定了旋转中心 点,然后通过向量表示操作点的上一位置和当前位置,从而可以根据向量内积 来计算得到对应的旋转角度,不存在断点,不需要去做平滑处理,提高了处理 效率,从而不会出现图片卡顿的现象。
附图说明
图1为一个实施例中图片旋转方法的流程示意图;
图2为一个实施例中的待旋转图片的旋转示意图;
图3为图1所示实施例中的步骤S106的流程图;
图4为一个实施例中图片旋转装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅 用以解释本申请,并不用于限定本申请。
本申请提供的图片旋转方法可以应用于终端或服务器中。其中,终端可以 但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿 戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实 现。
在一个实施例中,如图1所示,提供了一种图片旋转方法,以该方法应用 于图1中的终端为例进行说明,包括以下步骤:
S102:接收针对待旋转图片的旋转指令,并获取与旋转指令对应的旋转中 心点。
具体地,旋转指令是用户输入终端的,例如用户可以通过鼠标点击待旋转 图片,则表示输入了旋转指令。当终端的显示设备未触摸设备的时候,则旋转 指令可以是用户点击触摸设备时所形成的触摸点移动至待旋转图片时形成的。
其中旋转中心点即图片旋转时所固定不变的点,该旋转中心点可以根据用 户输入旋转指令时,鼠标或触摸点的位置来确定,例如直接将鼠标或触摸点的 位置作为旋转中心点;或者该旋转中心点可以默认为待旋转图片的中心,例如 终端可以首先获取待旋转图片的边界点的坐标,然后根据边界点的坐标计算得 到中心坐标,从而可以根据中心坐标得到旋转中心点,例如待旋转图片一般为 矩形,则终端可以首先获取到矩形的四个顶点的坐标,然后根据四个顶点的坐 标计算得到旋转中心点。
S104:判断与待旋转图片对应的操作点是否移动。
具体地,操作点是指鼠标或者触摸点在终端显示屏上所对应的显示点,当 鼠标或触摸点移动时,该操作点会相应的移动,因此终端通过判断该操作点是 否移动来获取到待旋转图片移动的方向和角度。
S106:当确定操作点移动时,则记录操作点的上一位置和当前位置,并通 过第一向量表示上一位置,第二向量表示当前位置。
具体地,参见图2,图2为一个实施例中的待旋转图片的旋转示意图,用户 在选择旋转中心点后,可以通过移动鼠标或者是触摸点的方式来实现图片的旋 转,如图2中用户通过将操作点从A移动到B来实现图片的旋转,其中假设A 为上一位置,B则为当前位置,O为旋转中心点。一般地可以选择旋转中心点为 坐标原点,建立坐标轴。这样终端可以通过向量来标识A点和B点的位置,对 应的为第一向量a和第二向量b。
S108:计算第一向量和第二向量的内积得到旋转角度对应的余弦值,并通 过反余弦函数以及余弦值计算得到旋转角度。
具体地,在将上一位置和当前位置通过第一向量a和第二向量b表示后, 可以得到关系式:a·b=|a||b|cos<a,b>,从而可以求得cos<a,b>,再根据反 余弦函数即可以得到旋转角度,这样由于反余弦函数自身的特性,在90度或270 度的时候不存在断点,不需要进行平滑处理等。
S110:根据所计算得到的旋转角度旋转待旋转图片后,将当前位置记录上 一位置,将操作点移动后的位置记录当前位置,并继续通过第一向量表示上一 位置,第二向量表示当前位置,直至操作点不再移动。
具体地,终端在计算得到旋转角度后,以旋转中心点为中心,以所计算的 旋转角度为旋转角对待旋转图片进行旋转操作即可实现图片的旋转。
其中需要说明的一点是,由于在图片旋转的过程中待旋转图片随操作点的 移动而动态移动,因此假设A为初始位置,则B为第一次移动后的位置,C为 第二次移动后的位置,为了实现图片随操作点的移动而旋转的显示,以当前位 置为B点为例进行说明,上一位置为A点,这是一个计算周期,终端首先根据 A点和B点的位置计算得到了当前旋转角度,从而终端可以根据当前旋转角度 来旋转图片。在旋转完成后,终端将B点作为图片的上一位置,C点作为图片 的当前位置,这是也是一个计算周期,终端继续用向量标识B点和C点的位置 计算得到当前旋转角度,从而可以实现图片随操作点的移动而旋转的显示。
其中计算周期可以是预先进行设置的,以保证图片旋转过程中不会存在卡 顿现象为准。终端在计算完当前旋转角度后,将当前位置作为上一位置,然后 判断时间是否经历了一个计算周期,若是,则获取操作点移动后的位置作为当 前位置,并继续用向量表示,然后计算新的旋转角度,直至操作点不再移动, 例如用户通过鼠标点击一次或者触摸点离开触摸屏后,则认为旋转结束。
上述图片旋转方法,首先确定了旋转中心点,然后通过向量表示操作点的 上一位置和当前位置,从而可以根据向量内积来计算得到对应的旋转角度,不 存在断点,不需要去做平滑处理,提高了处理效率,从而不会出现图片卡顿的 现象。
在其中一个实施例中,参见图3,图3为图1所示实施例中的步骤S106的 流程图,记录操作点的上一位置和当前位置的步骤,在该实施例中,上述的计 算周期,即此处的预设周期是预先设置好的,例如根据显示界面预设的周期生 成的,例如根据浏览器预先设置的周期生成,或者是根据应用程序预先设置的 周期生成等,即上述步骤S106可以包括:
S302:获取操作点的移动时间,操作点的移动事件为操作点由上一位置移 动到当前位置所用的时间。
具体地,终端在每次计算完成当前旋转角度之后,或者是终端在每次记录 当前位置时,计算到操作点的移动时间,例如终端可以记录操作点位于上一位 置时的第一***时间,然后记录操作点位于当前位置时的第二***时间,通过 第一***时间和第二***时间的差值计算得到移动时间。
S304:判断移动时间是否等于预设周期。
具体地,上述的计算周期,即此处的预设周期是预先设置好的,例如根据 显示界面预设的周期生成的,例如根据浏览器预先设置的周期生成,或者是根 据应用程序预先设置的周期生成等。例如浏览器预设周期可以为8毫秒,则每8 毫秒终端均记录一次操作点移动的当前位置,因此终端只需要判断移动时间是 否等于8毫秒。
S306:当移动时间等于预设周期时,则获取移动后的操作点的位置作为当 前位置。
当终端判断得到移动时间等于预设周期时,则终端将获取操作点的位置作 为当前位置,并通过向量标识该当前位置,然后通过计算上一位置与该当前位 置的向量的内积得到旋转角度,从而保证了移动过程中,待旋转图片随着操作 点的移动而旋转,给用户良好的体验,且由于采用向量内积的方式来进行计算, 不存在断点,因此也不会出现图片卡顿的现象。
上述实施例中,通过浏览器的预设周期来得到旋转角度的计算周期,从而 保证待旋转图片随着操作点的移动而旋转,给用户良好的体验,且由于采用向 量内积的方式来进行计算,不存在断点,因此也不会出现图片卡顿的现象。
在其中一个实施例中,通过反余弦函数以及余弦值计算得到旋转角度,可 以包括:通过反余弦函数以及余弦值计算得到初始角度;根据上一位置、当前 位置、旋转中心点以及旋转方向判断旋转角度是否大于180度;当旋转角度大 于180度时,则根据初始角度计算得到旋转角度;当旋转角度未大于180度时, 则将初始角度作为旋转角度。
请继续结合图2所示,分别以从A点旋转至B点,从B点旋转至C点为例 进行说明,其中从A点至B点旋转角度不大于180度,从B点至C点旋转角度 大于180度。在实际操作中,终端首先通过反余弦函数以及余弦值计算得到初 始角度,然后再判断当前旋转角度是否大于180度,例如可以根据上一位置、 当前位置、旋转中心点以及旋转方向来确定,以A点和B点为例,可以将A点 和B点分别与旋转中心连接,再获取旋转方向,根据旋转方向A点和B点之间 的位置判断是否大于180度,例如将A点与O点的连线进行延伸得到延伸线, 通过判断操作点是否经过该延伸线来判断是否大于180度,当操作点经过该旋 转线时,则大于180度,否则不大于。A点和B点之间,操作点仅到达B点, 未继续移动与射线OE相交,所以终端所计算得到的初始角度即为旋转角度。而 对于操作点从B点移动至C点时,其延伸线为射线OF,操作点在旋转过程中经 过了该延伸线,因此旋转角度大于180度,此时需要通过360度减去所计算得 到的初始角度才能得到旋转角度。
上述实施例中,当根据上一位置、当前位置、旋转方向以及旋转中心点判 断旋转角度大于180度时,则通过360度减去所计算的角度即可以得到旋转角 度,当旋转角度不大于180度时,则直接将所计算的角度作为旋转角度,计算 简单,方便,不存在断点情况,从而保证了待旋转图片在旋转过程中不会出现 卡顿的现象。
在其中一个实施例中,接收针对待旋转图片的旋转指令,可以包括:判断 操作点是否位于待旋转图片的区域中;当操作点位于待旋转图片的区域中时, 则判断是否接收到点击操作;当接收到点击操作时,则生成针对待旋转图片的 旋转指令。
在其中一个实施例中,获取与旋转指令对应的旋转中心点,可以包括:显 示与待旋转图片对应的多个待选旋转点;判断操作点是否移动至其中一个待选 旋转点;当确定操作点移动至其中一个待选旋转点时,则将操作点所在的待选 旋转点作为旋转中心点。
在其中一个实施例中,获取与旋转指令对应的旋转中心点,可以包括:接 收输入的点击操作,并获取操作点的当前所在位置;将操作点的当前所在位置 作为旋转中心点。
为了使得本领域技术人员更好地了解本申请中图片旋转方法,下文将提供 一个详细的实施例进行说明,结合图2,下文以鼠标输入为例进行说明,在其他 实施例中还可以是通过触摸屏输入等,该图片旋转方法可以包括:
(1)终端接收输入的针对待旋转图片的旋转指令。
具体地,旋转指令是由用户输入的,例如用户可以通过鼠标点击该图片, 则表示输入了旋转指令。且可选地,终端可以首先判断鼠标或触摸点对应的操 作点是否移动到待旋转图片的区域中,当用户将鼠标或触摸点移动到该待旋转 图片的区域中的时候,该待旋转图片会出现多个可视化的点,其中一些点表示 平移、一些点表示拉伸,还有一些点表示旋转等,当用户将鼠标移动到表示旋 转的点上,且进行了点击操作后,才表示向终端输入了对待旋转图片的旋转指 令,即当终端判断出操作点位于待旋转图片的区域中的时候,则判断是否接收 到点击操作,如果接收到,则生成待旋转指令。
(2)根据该旋转指令获取到旋转中心点。
具体地,终端在接收到该旋转指令后,可以获取到旋转中心点,一般默认 图像的中心为旋转中心点。且可选地,终端在进行点击操作输入了旋转指令后, 终端可以显示多个可供选择的旋转中心点,用户通过将鼠标或触摸点移动到其 中一个旋转中心点表示选中了该旋转中心点,从而终端可以获取到该旋转中心 点。当然,用户还可以根据需要自己设置一些可选地旋转中心点,例如用户通 过将鼠标移动至图片上或图片外任意一点,并通过点击指令表示选中该点为旋 转中心点等。
(3)记录鼠标移动的上一位置和当前位置,并通过向量表示该上一位置和 当前位置。
具体地,在选择旋转中心点后,用户可以通过移动鼠标来实现图片的旋转, 例如图2中,用户通过将鼠标从A点移动到B点来实现图片的旋转,且为了方 便计算,终端通过向量来标识A点以及B点的位置得到向量a和向量b。
(4)计算两个向量的内积得到旋转角度对应的余弦值,并通过反余弦函数 计算得到初始角度。
具体地,因此可以得到关系式:a·b=|a||b|cos<a,b>,从而可以求得cos<a, b>,再根据反余弦函数即可以得到初始角度。这样在90度或270度的时候不存 在断点,不需要进行平滑处理等。
(5)终端通过上一位置、当前位置、旋转中心点以及旋转方向判断旋转角 度是否大于180度。
以A点和B点为例,可以将A点和B点分别与旋转中心连接,再获取旋转 方向,根据旋转方向A点和B点之间的位置判断是否大于180度,例如将A点 与O点的连线进行延伸得到延伸线,通过判断操作点是否经过该延伸线来判断 是否大于180度,当操作点经过该旋转线时,则大于180度,否则不大于。
(6)当旋转角度不大于180度时,则将初始角度作为旋转角度;当旋转角 度大于180度时,则通过360度减去该初始角度得到旋转角度。
具体地,当根据上一位置、当前位置、旋转方向以及旋转中心点判断旋转 角度大于180度时,则通过360度减去所计算的角度即可以得到旋转角度,当 旋转角度不大于180度时,则直接将所计算的角度作为旋转角度,计算简单, 方便,不存在断点情况,从而保证了待旋转图片在旋转过程中不会出现卡顿的 现象。
(7)根据所计算得到的旋转角度旋转待旋转图片后,将当前位置作为上一 位置,将操作点移动后的位置作为当前位置,并继续通过第一向量表示上一位 置,第二向量表示当前位置,直至操作点不再移动。
具体地,终端在计算得到旋转角度后,以旋转中心点为中心,以所计算的 旋转角度为旋转角对待旋转图片进行旋转操作即可实现图片的旋转。
且为了保证待旋转图片随着操作点的移动而旋转,给用户良好的体验,终 端可以记录移动时间,并判断移动时间是否等于预设周期,当等于预设周期时, 则将当前位置作为上一位置,获取移动后的位置作为当前位置,并继续计算旋 转角度,根据旋转角度旋转待旋转图片,直至操作点不再移动为止,例如鼠标 进行了点击操作,或者是触摸点离开了显示设备等。
上述图片旋转方法,首先确定了旋转中心点,然后通过向量表示操作点的 上一位置和当前位置,从而可以根据向量内积来计算得到对应的旋转角度,不 存在断点,不需要去做平滑处理,提高了处理效率,从而不会出现图片卡顿的 现象。
在其中一个实施例中,接收针对待旋转图片的旋转指令之后,还可以包括: 接收输入的针对已旋转图片的选择指令;根据选择指令获取对应的已旋转图片 的当前旋转角度;根据当前旋转角度旋转待旋转图片。
具体地,为了简化操作,终端在处理完一张待旋转图片后,如果想要将其 他的待旋转图片的旋转角度调整到与已旋转完成的图片的旋转角度相同时,可 以在接收输入的旋转指令后,显示已经旋转完成的图片,例如以小框缩略图的 形式进行显示,并且在已经旋转完成的图片数量较多的情况下,终端以仅显示 其中几张,并通过左右滑动的形式调整出其他的已经旋转完成的图片,从而终 端可以获取到合适的已经旋转完成的图片,且可选地,终端在显示已经旋转完 成的图片的时候,可以按照操作时间进行排序,例如刚旋转完成的图片则排在 前边等。在终端获取到已经旋转完成的图片后,则获取该已经旋转完成的图片 的当前旋转角度,例如可以是基于界面的某一旋转轴的当前旋转角度,从而终 端可以基于该旋转轴以及当前旋转角度旋转待旋转图片,该旋转轴可以是水平 轴或者竖直轴等,再次不做具体限定。
上述实施例中,可以根据已经旋转完成的图片的当前旋转角度来旋转待旋 转图片,从而可以减少用户操作,提高操作效率。
应该理解的是,虽然图1和图3的流程图中的各个步骤按照箭头的指示依 次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中 有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它 的顺序执行。而且,图1和图3中的至少一部分步骤可以包括多个子步骤或者 多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在 不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是 可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地 执行。
在一个实施例中,如图4所示,提供了一种图片旋转装置,包括:第一接 收模块100、判断模块200、记录模块300、计算模块400和旋转模块500,其 中:
第一接收模块100,用于接收针对待旋转图片的旋转指令,并获取与旋转指 令对应的旋转中心点。
判断模块200,用于判断与待旋转图片对应的操作点是否移动。
记录模块300,用于当确定操作点移动时,则记录操作点的上一位置和当前 位置,并通过第一向量表示上一位置,第二向量表示当前位置。
计算模块400,用于计算第一向量和第二向量的内积得到旋转角度对应的余 弦值,并通过反余弦函数以及余弦值计算得到旋转角度。
旋转模块500,用于根据所计算得到的旋转角度旋转待旋转图片后,将当前 位置记录上一位置,将操作点移动后的位置记录当前位置,并继续通过第一向 量表示上一位置,第二向量表示当前位置,直至操作点不再移动。
在其中一个实施例中,记录模块300可以包括:
移动时间获取单元,用于获取操作点的移动时间,操作点的移动时间为操 作点由上一位置移动到当前位置所用的时间。
第一判断单元,用于判断移动时间是否等于预设周期。
记录单元,用于当移动时间等于预设周期时,则获取移动后的操作点的位 置作为当前位置。
在其中一个实施例中,计算模块400可以包括:
第一计算单元,用于通过反余弦函数以及余弦值计算得到初始角度。
第二判断单元,用于根据上一位置、当前位置、旋转中心点以及旋转方向 判断旋转角度是否大于180度。
旋转角度获取单元,用于当旋转角度大于180度时,则根据初始角度计算 得到旋转角度;当旋转角度未大于180度时,则将初始角度作为旋转角度。
在其中一个实施例中,第一接收模块100可以包括:
第三判断单元,用于判断操作点是否位于待旋转图片的区域中。
第四判断单元,用于当操作点位于待旋转图片的区域中时,则判断是否接 收到点击操作。
指令生成单元,用于当接收到点击操作时,则生成针对待旋转图片的旋转 指令。
在其中一个实施例中,第一接收模块100可以包括:
显示单元,用于显示与待旋转图片对应的多个待选旋转点。
第五判断单元,用于判断操作点是否移动至其中一个待选旋转点。
选取单元,用于当确定操作点移动至其中一个待选旋转点时,则将操作点 所在的待选旋转点作为旋转中心点。
在其中一个实施例中,第一接收模块100可以包括:
位置获取单元,用于接收输入的点击操作,并获取操作点的当前所在位置。
旋转中心获取单元,用于将操作点的当前所在位置作为旋转中心点。
在其中一个实施例中,上述图片旋转装置还可以包括:
第二接收模块,用于接收输入的针对已旋转图片的选择指令;
角度获取模块,用于根据所述选择指令获取对应的已旋转图片的当前旋转 角度;
旋转模块500还用于根据所述当前旋转角度旋转所述待旋转图片。
关于图片旋转装置的具体限定可以参见上文中对于图片旋转方法的限定, 在此不再赘述。上述图片旋转装置中的各个模块可全部或部分通过软件、硬件 及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处 理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调 用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其 内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、 存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提 供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。 该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存 储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口 用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一 种图片旋转方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示 屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机 设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠 标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关 的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定, 具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件, 或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储 器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收针对待 旋转图片的旋转指令,并获取与旋转指令对应的旋转中心点;判断与待旋转图 片对应的操作点是否移动;当确定操作点移动时,则记录操作点的上一位置和 当前位置,并通过第一向量表示上一位置,第二向量表示当前位置;计算第一 向量和第二向量的内积得到旋转角度对应的余弦值,并通过反余弦函数以及余 弦值计算得到旋转角度;根据所计算得到的旋转角度旋转待旋转图片后,将当 前位置记录上一位置,将操作点移动后的位置记录当前位置,并继续通过第一 向量表示上一位置,第二向量表示当前位置,直至操作点不再移动。
在一个实施例中,处理器执行计算机程序时所实现的记录操作点的上一位 置和当前位置,可以包括:获取操作点的移动时间,操作点的移动时间为操作 点由上一位置移动到当前位置所用的时间;判断移动时间是否等于预设周期; 当移动时间等于预设周期时,则获取移动后的操作点的位置作为当前位置。
在一个实施例中,处理器执行计算机程序时所实现的通过反余弦函数以及 余弦值计算得到旋转角度,可以包括:通过反余弦函数以及余弦值计算得到初 始角度;根据上一位置、当前位置、旋转中心点以及旋转方向判断旋转角度是 否大于180度;当旋转角度大于180度时,则根据初始角度计算得到旋转角度; 当旋转角度未大于180度时,则将初始角度作为旋转角度。
在一个实施例中,处理器执行计算机程序时所实现的接收针对待旋转图片 的旋转指令,可以包括:判断操作点是否位于待旋转图片的区域中;当操作点 位于待旋转图片的区域中时,则判断是否接收到点击操作;当接收到点击操作 时,则生成针对待旋转图片的旋转指令。
在一个实施例中,处理器执行计算机程序时所实现的获取与旋转指令对应 的旋转中心点,可以包括:显示与待旋转图片对应的多个待选旋转点;判断操 作点是否移动至其中一个待选旋转点;当确定操作点移动至其中一个待选旋转 点时,则将操作点所在的待选旋转点作为旋转中心点。
在一个实施例中,处理器执行计算机程序时所实现的获取与旋转指令对应 的旋转中心点,可以包括:接收输入的点击操作,并获取操作点的当前所在位 置;将操作点的当前所在位置作为旋转中心点。
在一个实施例中,处理器执行计算机程序时所实现的接收针对待旋转图片 的旋转指令之后,还可以包括:接收输入的针对已旋转图片的选择指令;根据 选择指令获取对应的已旋转图片的当前旋转角度;根据当前旋转角度旋转待旋 转图片。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程 序,计算机程序被处理器执行时实现以下步骤:接收针对待旋转图片的旋转指 令,并获取与旋转指令对应的旋转中心点;判断与待旋转图片对应的操作点是 否移动;当确定操作点移动时,则记录操作点的上一位置和当前位置,并通过 第一向量表示上一位置,第二向量表示当前位置;计算第一向量和第二向量的 内积得到旋转角度对应的余弦值,并通过反余弦函数以及余弦值计算得到旋转 角度;根据所计算得到的旋转角度旋转待旋转图片后,将当前位置记录上一位 置,将操作点移动后的位置记录当前位置,并继续通过第一向量表示上一位置, 第二向量表示当前位置,直至操作点不再移动。
在一个实施例中,计算机程序被处理器执行时所实现的记录操作点的上一 位置和当前位置,可以包括:获取操作点的移动时间,操作点的移动时间为操 作点由上一位置移动到当前位置所用的时间;判断移动时间是否等于预设周期; 当移动时间等于预设周期时,则获取移动后的操作点的位置作为当前位置。
在一个实施例中,计算机程序被处理器执行时所实现的通过反余弦函数以 及余弦值计算得到旋转角度,可以包括:通过反余弦函数以及余弦值计算得到 初始角度;根据上一位置、当前位置、旋转中心点以及旋转方向判断旋转角度 是否大于180度;当旋转角度大于180度时,则根据初始角度计算得到旋转角 度;当旋转角度未大于180度时,则将初始角度作为旋转角度。
在一个实施例中,计算机程序被处理器执行时所实现的接收针对待旋转图 片的旋转指令,可以包括:判断操作点是否位于待旋转图片的区域中;当操作 点位于待旋转图片的区域中时,则判断是否接收到点击操作;当接收到点击操 作时,则生成针对待旋转图片的旋转指令。
在一个实施例中,计算机程序被处理器执行时所实现的获取与旋转指令对 应的旋转中心点,可以包括:显示与待旋转图片对应的多个待选旋转点;判断 操作点是否移动至其中一个待选旋转点;当确定操作点移动至其中一个待选旋 转点时,则将操作点所在的待选旋转点作为旋转中心点。
在一个实施例中,计算机程序被处理器执行时所实现的获取与旋转指令对 应的旋转中心点,可以包括:接收输入的点击操作,并获取操作点的当前所在 位置;将操作点的当前所在位置作为旋转中心点。
在一个实施例中,计算机程序被处理器执行时所实现的接收针对待旋转图 片的旋转指令之后,还可以包括:接收输入的针对已旋转图片的选择指令;根 据选择指令获取对应的已旋转图片的当前旋转角度;根据当前旋转角度旋转待 旋转图片。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分 流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可 存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括 如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对 存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性 存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、 电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失 性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。记录说明 而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、 同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器 总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述 实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特 征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的 普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改 进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权 利要求为准。
Claims (10)
1.一种图片旋转方法,所述方法包括:
判断操作点是否位于待旋转图片的区域中;当所述操作点位于所述待旋转图片的区域中时,则判断是否接收到点击操作;当接收到点击操作时,则生成针对所述待旋转图片的旋转指令,并获取与所述旋转指令对应的旋转中心点;
判断与所述待旋转图片对应的操作点是否移动;
当确定所述操作点移动时,则获取所述操作点的移动时间,所述操作点的移动时间为所述操作点由上一位置移动到当前位置所用的时间;判断所述移动时间是否等于预设周期;当所述移动时间等于预设周期时,则获取移动后的操作点的位置作为当前位置,并通过第一向量表示所述上一位置,第二向量表示所述当前位置;
计算所述第一向量和所述第二向量的内积得到旋转角度对应的余弦值,并通过反余弦函数以及所述余弦值计算得到旋转角度;
根据所计算得到的旋转角度旋转所述待旋转图片后,将所述当前位置记录为上一位置,将所述操作点移动后的位置记录为当前位置,并继续通过第一向量表示所述上一位置,第二向量表示所述当前位置,直至所述操作点不再移动。
2.根据权利要求1所述的方法,其特征在于,所述通过反余弦函数以及所述余弦值计算得到旋转角度,包括:
通过反余弦函数以及所述余弦值计算得到初始角度;
根据所述上一位置、所述当前位置、所述旋转中心点以及旋转方向判断所述旋转角度是否大于180度;
当所述旋转角度大于180度时,则根据所述初始角度计算得到旋转角度;
当所述旋转角度未大于180度时,则将所述初始角度作为旋转角度。
3.根据权利要求1-2任意一项所述的方法,其特征在于,所述获取与所述旋转指令对应的旋转中心点,包括:
显示与所述待旋转图片对应的多个待选旋转点;
判断所述操作点是否移动至其中一个待选旋转点;
当确定所述操作点移动至其中一个待选旋转点时,则将所述操作点所在的待选旋转点作为旋转中心点。
4.根据权利要求3所述的方法,其特征在于,所述获取与所述旋转指令对应的旋转中心点,包括:
接收输入的点击操作,并获取所述操作点的当前所在位置;
将所述操作点的当前所在位置作为所述旋转中心点。
5.根据权利要求1至2任意一项所述的方法,其特征在于,所述生成针对所述待旋转图片的旋转指令之后,还包括:
接收输入的针对已旋转图片的选择指令;
根据所述选择指令获取对应的已旋转图片的当前旋转角度;
根据所述当前旋转角度旋转所述待旋转图片。
6.一种图片旋转装置,其特征在于,所述装置包括:
第一接收模块,用于判断操作点是否位于待旋转图片的区域中;当操作点位于待旋转图片的区域中时,则判断是否接收到点击操作;当接收到点击操作时,则生成针对待旋转图片的旋转指令,并获取与所述旋转指令对应的旋转中心点;
判断模块,用于判断与所述待旋转图片对应的操作点是否移动;
记录模块,用于当确定所述操作点移动时,则获取所述操作点的移动时间,所述操作点的移动时间为所述操作点由上一位置移动到当前位置所用的时间;判断所述移动时间是否等于预设周期;当所述移动时间等于预设周期时,则获取移动后的操作点的位置作为当前位置,并通过第一向量表示所述上一位置,第二向量表示所述当前位置;
计算模块,用于计算所述第一向量和所述第二向量的内积得到旋转角度对应的余弦值,并通过反余弦函数以及所述余弦值计算得到旋转角度;
旋转模块,用于根据所计算得到的旋转角度旋转所述待旋转图片后,将所述当前位置记录上一位置,将所述操作点移动后的位置记录当前位置,并继续通过第一向量表示所述上一位置,第二向量表示所述当前位置,直至所述操作点不再移动。
7.根据权利要求6所述的装置,其特征在于,所述第一接收模块包括:
显示单元,用于显示与待旋转图片对应的多个待选旋转点;
第五判断单元,用于判断操作点是否移动至其中一个待选旋转点;
选取单元,用于当确定操作点移动至其中一个待选旋转点时,则将操作点所在的待选旋转点作为旋转中心点。
8.根据权利要求7所述的装置,其特征在于,所述第一接收模块包括:
位置获取单元,用于接收输入的点击操作,并获取操作点的当前所在位置;
旋转中心获取单元,用于将操作点的当前所在位置作为旋转中心点。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012303.8A CN109814784B (zh) | 2019-01-07 | 2019-01-07 | 图片旋转方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012303.8A CN109814784B (zh) | 2019-01-07 | 2019-01-07 | 图片旋转方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814784A CN109814784A (zh) | 2019-05-28 |
CN109814784B true CN109814784B (zh) | 2022-07-08 |
Family
ID=66604029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910012303.8A Active CN109814784B (zh) | 2019-01-07 | 2019-01-07 | 图片旋转方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814784B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015269A (zh) * | 2020-08-03 | 2020-12-01 | 深圳市瑞立视多媒体科技有限公司 | 头显设备的显示校正方法、设备及存储介质 |
CN114546558B (zh) * | 2022-02-21 | 2024-06-04 | 金蝶云科技有限公司 | 图纸处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006643A (ja) * | 2001-06-25 | 2003-01-10 | Canon Inc | 画像処理装置及びその方法、プログラム |
CN102073405A (zh) * | 2010-11-30 | 2011-05-25 | 广东威创视讯科技股份有限公司 | 一种图像缩放与旋转判别方法 |
CN104777998A (zh) * | 2015-03-17 | 2015-07-15 | 惠州Tcl移动通信有限公司 | 图片旋转的方法及智能终端 |
CN105894554A (zh) * | 2016-04-11 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 图像处理方法和装置 |
CN108958619A (zh) * | 2017-05-26 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 用户界面操作方法、设备及计算机可读存储介质 |
-
2019
- 2019-01-07 CN CN201910012303.8A patent/CN109814784B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006643A (ja) * | 2001-06-25 | 2003-01-10 | Canon Inc | 画像処理装置及びその方法、プログラム |
CN102073405A (zh) * | 2010-11-30 | 2011-05-25 | 广东威创视讯科技股份有限公司 | 一种图像缩放与旋转判别方法 |
CN104777998A (zh) * | 2015-03-17 | 2015-07-15 | 惠州Tcl移动通信有限公司 | 图片旋转的方法及智能终端 |
CN105894554A (zh) * | 2016-04-11 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 图像处理方法和装置 |
CN108958619A (zh) * | 2017-05-26 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 用户界面操作方法、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109814784A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144201B2 (en) | Video picture adjustment method and apparatus, computer device and storage medium | |
US9910584B2 (en) | Method for manipulating folders and apparatus thereof | |
CN109558448B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2022110819A1 (zh) | 视频切换方法及装置 | |
CN105959564B (zh) | 一种拍照方法及移动终端 | |
CN110659092B (zh) | 网页截图方法、装置、计算机设备和存储介质 | |
CN105827963B (zh) | 一种拍照过程中场景变化检测方法及移动终端 | |
CN109814784B (zh) | 图片旋转方法、装置、计算机设备和存储介质 | |
CN106873844B (zh) | 图片查看方法及装置 | |
WO2016207861A1 (en) | Method, apparatus, and computer program product for predictive customizations in self and neighborhood videos | |
CN113741763A (zh) | 电子书的显示方法、装置及电子设备 | |
CN107391914B (zh) | 一种参数显示方法、装置及设备 | |
CN114779977A (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN111159598A (zh) | 影像浏览方法、装置、计算机设备和存储介质 | |
CN109271027B (zh) | 页面控制方法、装置及电子设备 | |
CN112506597B (zh) | 软件界面配色方法、装置、计算机设备和存储介质 | |
CN113259742B (zh) | 视频弹幕显示方法、装置、可读存储介质和计算机设备 | |
CN111522476A (zh) | 监控窗口切换的方法、设备、计算机设备和存储介质 | |
CN113835651A (zh) | 数据显示处理方法、装置、计算机设备和存储介质 | |
CN115421631A (zh) | 界面显示方法和装置 | |
CN114879872A (zh) | 显示方法、装置、电子设备及存储介质 | |
CN111161429B (zh) | 模型图像显示方法、装置、计算机设备和存储介质 | |
CN113467678A (zh) | 目标对象显示方法、装置、电子设备及计算机可读存储介质 | |
CN113591003A (zh) | 网页页面的处理方法、装置、计算机设备及存储介质 | |
US10573090B2 (en) | Non-transitory computer-readable storage medium, display control method, and display control apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |