CN116095249A - 视频处理方法及电子设备 - Google Patents
视频处理方法及电子设备 Download PDFInfo
- Publication number
- CN116095249A CN116095249A CN202210975830.0A CN202210975830A CN116095249A CN 116095249 A CN116095249 A CN 116095249A CN 202210975830 A CN202210975830 A CN 202210975830A CN 116095249 A CN116095249 A CN 116095249A
- Authority
- CN
- China
- Prior art keywords
- vertex
- video
- frame
- video picture
- electronic equipment
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2628—Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例提供一种视频处理方法及电子设备,应用于电子技术领域。该方法在对视频裁剪界面内显示的视频画面进行旋转、缩放以及拖拽等移动操作时,会判断裁剪框是否全部位于视频画面内,若裁剪框中存在位于视频画面之外的区域时,可根据移动操作对应的调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内。因此,本申请实施例在采用裁剪框对发生旋转、缩放以及拖拽等操作的视频画面进行裁剪时,可通过调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内,即裁剪框内不再包括非视频画面,从而使得裁剪后的视频中也不会出现视频画面以外的非视频画面,进而提高了裁剪后的视频效果。
Description
本申请要求在2022年05月30日提交中国专利局、申请号为202210601435.6、申请名称为“视频处理方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子技术领域,尤其涉及一种视频处理方法及电子设备。
背景技术
随着电子技术的不断发展,智能手机、平板电脑等电子设备在人们的生活和工作中得到了广泛的应用。在用户使用电子设备的过程中,可采用电子设备拍摄视频,并且,可以采用裁剪框对拍摄得到的视频画面进行裁剪,以得到裁剪后的视频。
但是,在采用裁剪框对发生旋转、缩放以及拖拽等操作的视频画面进行裁剪时,可能会出现裁剪框的部分区域位于视频画面外,即裁剪框内包括部分的非视频画面,从而导致裁剪后的视频效果较差。
发明内容
本申请实施例提供一种视频处理方法及电子设备,在视频画面进行旋转、缩放以及拖拽时对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内,提高裁剪后的视频效果。
第一方面,本申请实施例提出一种视频处理方法,该方法包括:电子设备接收对视频裁剪界面内显示的视频画面的移动操作,移动操作包括旋转操作、缩放操作以及拖拽操作中的至少一者;电子设备响应于移动操作,判断视频裁剪界面内的裁剪框是否全部位于视频画面内;当裁剪框中存在位于视频画面之外的区域时,电子设备根据移动操作对应的调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内;其中,旋转操作对应的调节参数包括第一临界缩放比例,缩放操作对应的调节参数包括第二临界缩放比例,拖拽操作对应的调节参数包括回弹距离。
这样,在采用裁剪框对发生旋转、缩放以及拖拽等操作的视频画面进行裁剪时,可通过调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内,即裁剪框内不再包括非视频画面,从而使得裁剪后的视频中也不会出现视频画面以外的非视频画面,进而提高了裁剪后的视频效果
在一种可能的实现方式中,电子设备接收对视频裁剪界面内显示的视频画面的移动操作,包括:电子设备接收对视频裁剪界面中的第一旋转控件的触控操作;第一旋转控件用于在被触发时,根据触控操作对应的角度刻度值对视频画面进行旋转。电子设备响应于移动操作,判断视频裁剪界面内的裁剪框是否全部位于视频画面内,包括:电子设备响应于触控操作,获取旋转过程中的视频画面中的各个顶点的第一顶点坐标以及裁剪框中的各个顶点的第二顶点坐标;电子设备根据第一顶点坐标和第二顶点坐标,计算视频画面的第一临界缩放比例;电子设备根据第一临界缩放比例,以及旋转过程中的视频画面相对于原始视频画面的第一缩放比例,确定裁剪框是否全部位于旋转过程中的视频画面内。当裁剪框中存在位于视频画面之外的区域时,电子设备根据移动操作对应的调节参数对视频画面进行调节,包括:当裁剪框中存在位于旋转过程中的视频画面之外的区域时,电子设备按照第一临界缩放比例对旋转过程中的视频画面进行放大操作。这样,在对视频画面进行旋转时,基于第一临界缩放比例对旋转过程中的视频画面进行放大操作,使得裁剪框全部位于放大后的视频画面内。
在一种可能的实现方式中,电子设备根据第一临界缩放比例,以及旋转过程中的视频画面相对于原始视频画面的第一缩放比例,确定裁剪框是否全部位于旋转过程中的视频画面内,包括:当第一临界缩放比例大于第一缩放比例时,电子设备确定裁剪框中存在位于旋转过程中的视频画面之外的区域;当第一临界缩放比例小于或等于第一缩放比例时,电子设备确定裁剪框全部位于旋转过程中的视频画面内。
在一种可能的实现方式中,电子设备根据第一顶点坐标和第二顶点坐标,计算视频画面的第一临界缩放比例,包括:电子设备根据视频画面中的各个顶点的第一顶点坐标,计算得到视频画面中的每相邻两个顶点之间形成的第一连线;电子设备根据裁剪框中的各个顶点的第二顶点坐标,计算得到裁剪框的中心点与裁剪框中的每个顶点之间形成的第二连线;电子设备计算第一目标顶点对应的第一连线以及对应的第二连线之间形成的交点,得到第一目标顶点对应的目标交点,第一目标顶点为裁剪框中的任意一个顶点,第一目标顶点对应的第一连线为视频画面中与第一目标顶点距离最近的第一连线,第一目标顶点对应的第二连线为第一目标顶点与裁剪框的中心点之间形成的第二连线;电子设备计算第一目标顶点与裁剪框的中心点之间的第一间距,以及目标交点与裁剪框的中心点之间的第二间距;电子设备根据第一间距和第二间距,计算视频画面的第一临界缩放比例。这样,可基于视频画面中的各个顶点的第一顶点坐标,以及裁剪框中的各个顶点的第二顶点坐标,方便地计算出第一临界缩放比例,计算方式较为简单。
在一种可能的实现方式中,电子设备根据第一间距和第二间距,计算视频画面的第一临界缩放比例,包括:电子设备将第一间距与第二间距的比值,确定为第一目标顶点对应的目标比例值;电子设备将裁剪框中的各个顶点对应的目标比例值中的最大值,确定为视频画面的第一临界缩放比例。这样,采用四个顶点对应的目标比例值中的最大值作为第一临界缩放比例,可保证裁剪框全部位于以第一临界缩放比例放大后的视频画面内。
在一种可能的实现方式中,电子设备响应于移动操作,判断视频裁剪界面内的裁剪框是否全部位于视频画面内;电子设备响应于拖拽操作,获取拖拽后的视频画面中的各个顶点的第三顶点坐标以及裁剪框中的各个顶点的第四顶点坐标;电子设备根据第三顶点坐标和第四顶点坐标,确定裁剪框是否全部位于拖拽后的视频画面内。当裁剪框中存在位于视频画面之外的区域时,电子设备根据移动操作对应的调节参数对视频画面进行调节,包括:当裁剪框中存在位于拖拽后的视频画面之外的区域时,电子设备按照回弹距离对拖拽后的视频画面进行回弹操作。这样,在对视频画面进行拖拽后,基于回弹距离对拖拽后的视频画面进行回弹操作,使得裁剪框全部位于回弹后的视频画面内。
在一种可能的实现方式中,电子设备根据第三顶点坐标和第四顶点坐标,确定裁剪框是否全部位于拖拽后的视频画面内,包括:在视频画面的旋转角度不为0°且不是90°的整数倍的情况下,电子设备根据视频画面中的各个顶点的第三顶点坐标,计算得到视频画面中的每相邻两个顶点之间形成的第三连线;电子设备计算裁剪框中的各个顶点至对应的第三连线的垂点坐标;电子设备根据垂点坐标和第四顶点坐标,确定裁剪框是否全部位于拖拽后的视频画面内。
在一种可能的实现方式中,在电子设备按照回弹距离对拖拽后的视频画面进行回弹操作之前,还包括:在视频画面的旋转角度不为0°且不是90°的整数倍的情况下,电子设备确定拖拽后的视频画面中的各个顶点中,与裁剪框的中心点距离最近的第二目标顶点;电子设备获取第二目标顶点对应的临界点的临界坐标,临界点与第二目标顶点的方位一致;电子设备根据第二目标顶点对应的第三顶点坐标、临界点对应的临界坐标、第三目标顶点对应的第四顶点坐标,以及两个目标垂点对应的垂点坐标,确定裁剪框中位于拖拽后的视频画面之外的顶点数量是否大于1,第三目标顶点为裁剪框中与第二目标顶点方位一致的顶点,目标垂点为裁剪框中第二目标顶点对应的两个顶点,至视频画面中与第二目标顶点相邻的两条边界线上的垂点;当裁剪框中的至少两个顶点位于拖拽后的视频画面之外时,电子设备将临界点与第二目标顶点之间的偏离距离,作为回弹距离。这样,基于临界点与裁剪框的中心点距离最近的第二目标顶点,简单地计算出回弹距离。
在一种可能的实现方式中,当裁剪框中的一个顶点位于拖拽后的视频画面之外时,电子设备获取裁剪框中位于视频画面之外的第四目标顶点对应的第四顶点坐标;电子设备将第四目标顶点对应的第四顶点坐标,与其对应的目标垂点的垂点坐标之间的偏离距离,作为回弹距离。这样,在裁剪框中只有一个顶点位于拖拽后的视频画面之外时,基于第四目标顶点与目标垂点之间的偏离距离进行回弹,可提高回弹的效果。
在一种可能的实现方式中,在电子设备按照回弹距离对拖拽后的视频画面进行回弹操作之前,还包括:在视频画面的旋转角度为0°或90°的整数倍的情况下,电子设备确定拖拽后的视频画面中的各个顶点中,与裁剪框的中心点距离最近的第五目标顶点;电子设备根据裁剪框中与第五目标顶点方位一致的顶点对应的第四顶点坐标,以及第五目标顶点对应的第三顶点坐标,计算回弹距离。
在一种可能的实现方式中,电子设备响应于移动操作,判断视频裁剪界面内的裁剪框是否全部位于视频画面内,包括:电子设备响应于缩放操作,获取缩放后的视频画面相对于原始视频画面的第二缩放比例;电子设备计算视频画面的第二临界缩放比例;电子设备根据第二临界缩放比例和第二缩放比例,确定裁剪框是否全部位于缩放后的视频画面内。当裁剪框中存在位于视频画面之外的区域时,电子设备根据移动操作对应的调节参数对视频画面进行调节,包括:当裁剪框中存在位于缩放后的视频画面之外的区域时,电子设备按照第二临界缩放比例对缩放后的视频画面进行放大操作。这样,在对视频画面进行缩放后,基于第二临界缩放比例对缩放后的视频画面进行放大回弹,使得裁剪框全部位于放大回弹后的视频画面内。
在一种可能的实现方式中,电子设备根据第二临界缩放比例和第二缩放比例,确定裁剪框是否全部位于缩放后的视频画面内,包括:当第二临界缩放比例大于第二缩放比例时,电子设备确定裁剪框中存在位于缩放后的视频画面之外的区域;当第二临界缩放比例小于或等于第二缩放比例时,电子设备确定裁剪框全部位于缩放后的视频画面内。
在一种可能的实现方式中,电子设备计算视频画面的第二临界缩放比例,包括:在视频画面的旋转角度不为0°且不是90°的整数倍的情况下,电子设备根据裁剪框的宽度、裁剪框的高度以及视频画面在第一旋转控件触发下的旋转角度,计算得到视频画面的临界距离;电子设备将临界距离与视频画面的原始尺寸的比值,确定为第二临界缩放比例;视频画面的原始尺寸为视频画面的原始宽度或视频画面的原始高度。这样,可基于裁剪框的宽度、裁剪框的高度以及第一旋转控件对应的旋转角度,方便地计算出第二临界缩放比例,其计算方式较为简单。
在一种可能的实现方式中,电子设备计算视频画面的第二临界缩放比例,包括:在视频画面的旋转角度为0°或90°的整数倍的情况下,电子设备将裁剪框的目标尺寸与视频画面的原始尺寸的比值,作为第二临界缩放比例;其中,裁剪框的目标尺寸为裁剪框的高度,视频画面的原始尺寸为视频画面的原始高度;或者,裁剪框的目标尺寸为裁剪框的宽度,视频画面的原始尺寸为视频画面的原始宽度。这样,提供了一种第一旋转控件对应的旋转角度为0°时的第二临界缩放比例的计算方式。
在一种可能的实现方式中,该视频处理方法还包括:在视频画面的旋转角度不为0°且不是90°的整数倍的情况下,电子设备接收对裁剪框的拖拽操作;电子设备响应于拖拽操作,获取视频画面中的各个顶点的第五顶点坐标;电子设备根据视频画面中的各个顶点的第五顶点坐标,计算得到视频画面中的每相邻两个顶点之间形成的第四连线;电子设备根据裁剪框中的四条边界线的延长线与第四连线之间形成的交点对应的交点坐标,计算裁剪框的拖拽边界;拖拽边界为裁剪框允许拖拽的最大范围对应的边界。这样,可方便地计算出裁剪框的拖拽边界。
在一种可能的实现方式中,该视频处理方法还包括:在对缩放后的视频画面进行拖拽操作后,电子设备获取拖拽后的视频画面的各个顶点的第六顶点坐标和视频画面的实际缩放比例;电子设备根据第六顶点坐标和裁剪框的中心点,确定视频画面的第一轴点;电子设备根据第一轴点在拖拽后的视频画面中的实际位置,确定视频画面在以实际缩放比例缩小后的视频画面中对应的第二轴点,视频画面是以原始轴点为缩放中心点进行缩小的;电子设备计算第六顶点坐标,与视频画面在以实际缩放比例放大后的实际顶点坐标之间的偏离值,视频画面是以第二轴点为缩放中心点进行放大的;电子设备根据偏离值更新视频画面的坐标。这样,在对缩放后的视频画面进行拖拽操作后,更新视频画面的轴点,实际后续再次对视频画面进行旋转或缩放时,可使得用户实际需要的画面部分位于裁剪框内。
在一种可能的实现方式中,电子设备根据第六顶点坐标和裁剪框的中心点,确定视频画面的第一轴点,包括:电子设备根据第六顶点坐标,计算得到拖拽后的视频画面的第五连线和第六连线,第五连线和第六连线为拖拽后的视频画面中相邻的两条边界线;电子设备计算裁剪框的中心点至第五连线的第一轴点距离,以及裁剪框的中心点至第六连线的第二轴点距离;电子设备采用第一轴点距离除以视频画面的实际宽度,再乘以视频画面的原始宽度,得到第一轴点的横坐标;电子设备采用第二轴点距离除以视频画面的实际高度,再乘以视频画面的原始高度,得到第一轴点的纵坐标。
第二方面,本申请实施例提出一种电子设备,包括存储器和处理器,存储器用于存储计算机程序,处理器用于调用计算机程序,以执行上述的视频处理方法。
第三方面,本申请实施例提出一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令被运行时,实现上述的视频处理方法。
第四方面,本申请实施例提出一种计算机程序产品,包括计算机程序,当计算机程序被运行时,使得计算机执行上述的视频处理方法。
第二方面至第四方面各可能的实现方式,效果与第一方面以及第一方面的可能的设计中的效果类似,在此不再赘述。
附图说明
图1为本申请实施例提供的电子设备的硬件系统结构示意图;
图2为本申请实施例提供的电子设备的软件系统结构示意图;
图3为本申请实施例提供的视频裁剪过程中的界面示意图;
图4为本申请实施例提供的在视频裁剪界面对视频画面进行镜像和旋转时的示意图;
图5为本申请实施例提供的在视频裁剪界面,对视频画面拖拽后进行回弹的示意图;
图6为本申请实施例提供的在视频裁剪界面,对视频画面缩小后进行回弹放大的示意图;
图7为本申请实施例提供的一种视频处理方法的流程图;
图8为本申请实施例提供的在视频画面旋转过程中的视频处理方法的流程图;
图9为本申请实施例在对视频画面旋转过程中,视频画面放大时所需的第一临界缩放比例的计算示意图;
图10为本申请实施例在对裁剪框进行不同方式拖拽时的示意图;
图11为本申请实施例针对视频画面未旋转时,裁剪框的拖拽边界的计算示意图;
图12为本申请实施例针对视频画面旋转后,裁剪框的拖拽边界的计算示意图;
图13为本申请实施例提供的在视频画面拖拽后的视频处理方法的流程图;
图14为本申请实施例在对视频画面拖拽后,判断裁剪框是否全部位于拖拽后的视频画面内的示意图;
图15为本申请实施例在对视频画面拖拽后,视频画面的一种回弹距离的计算示意图;
图16为本申请实施例在对视频画面拖拽后,视频画面的另一种回弹距离的计算示意图;
图17为本申请实施例提供的在对视频画面缩放后的视频处理方法的流程图;
图18为本申请实施例在对视频画面缩放后,视频画面放大时所需的第二临界缩放比例的计算示意图;
图19为本申请实施例在对缩放后的视频画面进行拖拽操作后,对视频画面的轴点更新示意图;
图20为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在用户使用电子设备的过程中,可采用电子设备拍摄视频,并且,用户在拍摄视频之后,用户可以对拍摄的视频进行编辑操作,以使得编辑后的视频更能满足用户个性化的需求。然后,电子设备可将编辑后的视频保存到存储设备中。这样,在用户需要浏览或使用上述编辑后的视频时,电子设备可从存储设备中读取上述编辑后的视频,并显示给用户浏览和查看。
例如,在拍摄视频之后,响应于用户采用裁剪框对视频画面的裁剪操作,将裁剪框内的视频画面裁剪出来。裁剪框是指视频编辑应用的视频裁剪功能中,用来裁剪画面的视图操作框。
在一些场景中,用户可以对视频画面进行旋转、缩放以及平移(也可称为拖拽)等操作。在相关技术中,在采用裁剪框对发生旋转、缩放以及拖拽等操作的视频画面进行裁剪时,可能会出现裁剪框的部分区域位于视频画面外,即裁剪框内包括部分的非视频画面,从而导致裁剪后的视频中出现视频画面以外的非视频画面,影响裁剪后的视频效果。
基于此,本申请实施例提供了一种视频处理方法,在对视频裁剪界面内显示的视频画面进行旋转、缩放以及拖拽等移动操作时,会判断裁剪框是否全部位于视频画面内,若裁剪框中存在位于视频画面之外的区域时,可根据移动操作对应的调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内。因此,本申请实施例在采用裁剪框对发生旋转、缩放以及拖拽等操作的视频画面进行裁剪时,可通过调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内,即裁剪框内不再包括非视频画面,从而使得裁剪后的视频中也不会出现视频画面以外的非视频画面,进而提高了裁剪后的视频效果。
本申请实施例提供的电子设备可以是手机、平板电脑(Pad)、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,具有视频处理能力的电子设备。本申请实施例对电子设备所采用的具体技术和具体设备形态不做限定。
为了能够更好地理解本申请实施例,下面对本申请实施例的电子设备的结构进行介绍。
示例性的,图1为本申请实施例提供的一种电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像、显示视频和接收滑动操作等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organiclight-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diod,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
触摸传感器,也称“触控器件”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用层,应用程序框架层,系统库和硬件层。
应用层可以包括一系列应用程序包,如电话、邮箱、日历、音乐等应用程序。
在本申请实施例中,如图2所示,应用程序层还包括视频编辑应用。视频编辑应用具备视频数据处理能力,能够为用户提供编辑视频的功能,包括裁剪、渲染等视频数据处理。其中,本申请实施例中可利用视频编辑应用,实现在对视频画面进行拖拽、缩放以及旋转等移动操作的情况下,判断视频裁剪界面内的裁剪框是否全部位于视频画面内,以及当裁剪框中存在位于视频画面之外的区域时,根据旋转操作对应的第一临界缩放比例、缩放操作对应的第二临界缩放比例,以及拖拽操作对应的回弹距离等调节参数,对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内。此外,视频编辑应用还可以计算裁剪框允许拖拽的拖拽边界,以及在对已缩放的视频画面进行拖拽后更新视频画面的轴点。
应用程序框架层为应用层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,用程序框架层可以包括媒体框架和应用框架。
媒体框架中提供有多个编辑视频、音频的工具。其中,上述工具包括MediaCodec。MediaCodec是Android提供的用于对音视频进行编解码的模块。它包括编码器、解码器以及surface类型缓存。
MeidaCodec提供的编码器可将输入该编码器的一种格式的视频或音频通过压缩技术转换成另一种格式,而解码器用于执行编码的反向过程,将输入该解码器的一种格式的视频或音频通过解压缩技术转换成另一种格式。
MediaCodec还可以申请一块共享内存,该共享内存即硬件层中的surface内存(后续简称为surface)。Surface可用于缓存视频数据。例如,电子设备执行编辑操作,得到被渲染的视频图像帧后,电子设备可将上述图像帧输入surface缓存。然后,应用程序可从surface中获取渲染后的视频图像帧,用于存储或显示等。
媒体框架中还包括共享内存管理模块(surface flinger),共享内存管理模块用于将多个App的应用窗口的视图surface根据屏幕显示的层级顺序,叠加混合成一个视图surface,并放入缓存区域。屏幕在根据一定频率刷新画面的时候,可以将缓存区域的视图显示到显示屏上。
应用框架(FrameWork)可以管理当前每个应用App的窗口处理事件和动作,以及和SurfaceFlinger进行数据通信;也可以处理应用App的工作事件或者方法调用,根据App的要求作出相应的响应。
系统库可以包括多个功能模块。如图2所示,系统库中可包括渲染模块,渲染模块可用于实现三维图形绘图,图像渲染,合成和图层处理等。作为示例而非限定,渲染模块包括但不限于以下至少一项:开放图形库(open graphics library,OpenGL)、开源计算机视觉库(open source computer vision library,OpenCV)、开放运算语言库(opencomputing language library,OpenCL)。
渲染模块提供有多个图像渲染函数,可用于绘制从简单的图形到复杂的三维景象。在本申请实施例中系统库提供的渲染模块可用于支持视频编辑应用执行图像编辑操作,例如,视频裁剪操作、添加滤镜等。
作为示例,系统库中还可以包括其它功能模块,例如,例如:状态监测服务,表面管理器(surface manager),媒体库(Media Libraries)等。
其中,硬件层包括内存(memory)、图形处理器(GPU)和显存。内存可用于暂时存放中央处理器(central processing unit,CPU)中的运算数据,和与硬盘等外部存储器交换的数据。内存中还包括前文中的共享内存(surface)。电子设备运行视频编辑应用所需的存储空间可通过内存提供,例如,surface。
GPU是执行图像和图形相关运算工作的处理器。在本申请实施例中,电子设备利用渲染模块进行视频裁剪的过程可通过GPU完成。显存用于存放每一次GPU计算后的渲染画面数据。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
在实际使用场景中,用户可通过视频编辑应用打开视频,使得电子设备显示图3中的(a)所示的视频编辑界面300。其中,视频编辑界面300显示有视频对应的视频画面301,视频编辑界面300还包括多种用于进行视频编辑的功能控件,如裁剪控件302、滤镜控件、文字控件和特效控件等。
当用户需要对视频进行裁剪的情况下,用户可对该裁剪控件302进行操作,则电子设备响应于对裁剪控件302的用户操作,使得电子设备显示如图3中的(b)所示的视频裁剪界面400。
其中,视频裁剪界面400内也显示有视频对应的视频画面301,且视频裁剪界面内还设置有裁剪框401,裁剪框401指的是视频编辑应用的视频裁剪功能中,用于裁剪视频画面的视图操作框,其用于对视频画面进行裁剪。
视频裁剪界面400还包括画幅控件,画幅控件用于改变裁剪框401的宽度和/或高度,从而改变裁剪框401内的视频画面的宽度和/或高度,即用于改变裁剪后的视频画面的宽度和/或高度。例如,画幅控件可以包括但不限于以下几种控件:“自由”画幅控件、“原比例”画幅控件、“9:16”画幅控件、“16:9”画幅控件和“3:4”画幅控件等。
“自由”画幅控件用于在调节裁剪框401的宽度和/或高度时,裁剪框401的宽高比可根据实际需求任意变化,即裁剪框401的宽高比不固定。“原比例”画幅控件用于在调节裁剪框401的宽度和高度时,裁剪框401的宽高比固定不变依旧为预设的宽高比,该预设的宽高比可以裁剪前的视频画面的宽高比,或者其他预设的比例。“9:16”画幅控件用于按照固定的宽高比9:16来调节裁剪框401的宽度和高度。“16:9”画幅控件用于按照固定的宽高比16:9来调节裁剪框401的宽度和高度。“3:4”画幅控件用于按照固定的宽高比3:4来调节裁剪框401的宽度和高度
此外,视频裁剪界面400还包括第一旋转控件402、第二旋转控件403和镜像控件404。
第一旋转控件402也可称为rulerView控件,第一旋转控件402用于在接收到用户操作时,根据用户操作所选择的角度刻度值对视频画面进行旋转。示例性的,第一旋转控件402的旋转角度范围为-45°~+45°,向右滑动第一旋转控件402时,视频画面顺时针旋转,向左滑动第一旋转控件402时,视频画面逆时针旋转。因此,当用户滑动第一旋转控件402时,可根据实际需求调节视频画面的旋转角度,例如,可根据实际需求将视频画面顺时针旋转10°或者30°等。
第二旋转控件403用于在接收到用户操作时将视频画面按照固定角度进行旋转。例如,用户每点击一次第二旋转控件403,可将视频画面逆时针旋转90°或者顺时针旋转90°等。镜像控件404用于在接收到用户操作时对视频画面进行镜像操作。
示例性的,当用户对“自由”画幅控件进行点击操作,并通过拖拽裁剪框401的边界或者顶点等方式,将裁剪框401的宽度和高度调整至用户需要的大小后,用户可点击视频裁剪界面400中的确认控件405,则电子设备响应于对确认控件405的用户操作,使得电子设备显示如图3中的(c)所示的视频编辑界面300,并在如图3中的(c)所示的视频编辑界面300内显示裁剪后的视频画面303。在电子设备跳转至图3中的(c)所示的视频编辑界面300之后,用户可以继续点击其它编辑的功能按钮进行编辑,或者也可以结束视频编辑操作。
在实际使用过程中,在电子设备显示视频裁剪界面400后,用户可以对视频画面执行以下一项或多项操作。
示例性的,如图4中的(a)所示,用户可以通过对视频裁剪界面400内的镜像控件404进行触控操作,电子设备响应于对镜像控件404的用户操作,以实现对视频画面301进行镜像操作。
如图4中的(b)所示,用户也可以对视频裁剪界面400内的第一旋转控件402进行触控操作,以实现对视频画面301进行旋转操作。并且,在旋转过程中,会判断裁剪框401是否全部位于旋转过程中的视频画面301内,当裁剪框401全部位于旋转过程中的视频画面301内时,视频画面301保持原状,而当裁剪框401中存在位于旋转过程中的视频画面301之外的区域时,电子设备可按照第一临界缩放比例对旋转过程中的视频画面301进行放大操作,使得裁剪框401全部位于放大后的视频画面301内。
当然,用户可以对视频裁剪界面400内的第二旋转控件403进行触控操作,以实现对视频画面进行90°的整数倍的旋转操作。
如图5中的(a)所示,用户还可以通过对裁剪框401内的视频画面301进行单指拖拽操作,实现对裁剪框401内显示的视频画面301进行拖拽。在用户的拖拽操作结束后,用户的手指会离开电子设备的屏幕,则电子设备需要判断裁剪框401是否全部位于拖拽后的视频画面301内,当裁剪框401全部位于拖拽后的视频画面301内时,视频画面301保持原状,而当裁剪框401中存在位于拖拽后的视频画面301之外的区域时,电子设备可按照回弹距离对拖拽后的视频画面301进行回弹操作,即视频画面301从图5中的(a)所示的状态回弹至图5中的(b)所示的状态,最终使得裁剪框401全部位于回弹后的视频画面301内。
用户还可以通过对裁剪框401内的视频画面301进行双指缩放操作,实现对裁剪框401内显示的视频画面301进行放大或缩小,如图6中的(a)所示,用户对裁剪框401内显示的视频画面301进行缩小操作。在用户的缩放操作结束后,用户的手指会离开电子设备的屏幕,则电子设备需要判断裁剪框401是否全部位于缩放后的视频画面301内,当裁剪框401全部位于缩放后的视频画面301内时,视频画面301保持原状,而当裁剪框401中存在位于缩放后的视频画面301之外的区域时,电子设备可按照第二临界缩放比例对缩放后的视频画面进行放大操作,即视频画面301从图6中的(a)所示的状态放大回弹至图6中的(b)所示的状态,最终使得裁剪框401全部位于放大回弹后的视频画面301内。
示例性的,图7为本申请实施例提供的一种视频处理方法的流程图,该视频处理方法具体可通过电子设备中的视频编辑应用执行。参照图7所示,视频处理方法具体可以包括如下步骤:
步骤701,电子设备接收对视频裁剪界面内显示的视频画面的移动操作;移动操作包括旋转操作、缩放操作以及拖拽操作中的至少一者。
在一些实施例中,用户可以对视频裁剪界面400内的第一旋转控件402进行滑动操作,或者,用户也可以对视频裁剪界面400内的第二旋转控件403进行点击操作,使得电子设备可接收到对视频裁剪界面400内显示的视频画面301的旋转操作。
用户也可以对裁剪框401内的视频画面301进行单指拖拽操作,使得电子设备接收到对视频裁剪界面400内显示的视频画面301的拖拽操作。
用户还可以对裁剪框401内的视频画面301进行双指缩放操作,使得电子设备接收到对视频裁剪界面400内显示的视频画面301的缩放操作。
步骤702,电子设备响应于移动操作,判断视频裁剪界面内的裁剪框是否全部位于视频画面内。
以针对视频画面301的旋转操作为例。在旋转过程中,电子设备会判断裁剪框401是否全部位于旋转过程中的视频画面301内。当裁剪框401全部位于旋转过程中的视频画面301内时,视频画面301保持原状,电子设备不改变视频画面301的大小。
以针对视频画面301的拖拽操作为例。在用户的拖拽操作结束后,电子设备会判断裁剪框401是否全部位于拖拽后的视频画面301内,当裁剪框401全部位于拖拽后的视频画面301内时,视频画面301保持原状,电子设备不对视频画面301进行回弹。
以针对视频画面301的缩放操作为例。在用户的缩放操作结束后,电子设备会判断裁剪框401是否全部位于缩放后的视频画面301内,当裁剪框401全部位于缩放后的视频画面301内时,视频画面301保持原状,电子设备不对视频画面301进行放大操作。
步骤703,当裁剪框中存在位于视频画面之外的区域时,电子设备根据移动操作对应的调节参数对视频画面进行调节,使得裁剪框全部位于调节后的视频画面内。
以针对视频画面301的旋转操作为例,旋转操作对应的调节参数包括第一临界缩放比例。当裁剪框401中存在位于旋转过程中的视频画面301之外的区域时,电子设备可按照第一临界缩放比例对旋转过程中的视频画面301进行放大操作,使得裁剪框401全部位于放大后的视频画面301内。
以针对视频画面301的拖拽操作为例,拖拽操作对应的调节参数包括回弹距离。当裁剪框401中存在位于拖拽后的视频画面301之外的区域时,电子设备可按照回弹距离对拖拽后的视频画面301进行回弹操作,使得裁剪框401全部位于回弹后的视频画面301内。
以针对视频画面301的缩放操作为例,缩放操作对应的调节参数包括第二临界缩放比例。当裁剪框401中存在位于缩放后的视频画面301之外的区域时,电子设备可按照第二临界缩放比例对缩放后的视频画面进行放大操作,使得裁剪框401全部位于放大后的视频画面301内。
因此,本申请实施例在采用裁剪框401对发生旋转、缩放以及拖拽等操作的视频画面301进行裁剪时,可通过调节参数对视频画面301进行调节,使得裁剪框401全部位于调节后的视频画面301内,即裁剪框401内不再包括非视频画面,从而使得裁剪后的视频中也不会出现视频画面301以外的非视频画面,进而提高了裁剪后的视频效果。
此外,本申请实施例除了上述在对视频画面301进行旋转、缩放以及拖拽等操作,通过调节参数对视频画面进行调节外,还可以计算裁剪框401允许拖拽的拖拽边界,以及在对已缩放的视频画面301进行拖拽后更新视频画面301的轴点。
下面分别从视频画面301的旋转、裁剪框401的拖拽、视频画面301的拖拽、视频画面301的缩放,以及视频画面301的轴点更新这五个方面,具体介绍本申请实施例的具体实现方式。
示例性的,图8为本申请实施例提供的在视频画面旋转过程中的视频处理方法的流程图,其主要针对触发第一旋转控件402时的旋转场景为例。参照图8所示,视频画面旋转过程中的视频处理方法具体可包括如下步骤:
步骤801,电子设备接收对视频裁剪界面中的第一旋转控件的触控操作;第一旋转控件用于在被触发时,根据触控操作对应的角度刻度值对视频画面进行旋转。
在一些实施例中,当用户想要对视频裁剪界面400内显示的视频画面301进行旋转时,可通过对视频裁剪界面400内的第一旋转控件402进行滑动操作,使得电子设备接收对视频裁剪界面400内的第一旋转控件402的触控操作。
第一旋转控件402也可称为rulerView控件,第一旋转控件402的旋转角度范围可以为-45°~+45°。第一旋转控件402用于在被触发时,根据触控操作对应的角度刻度值对视频画面进行旋转操作。
在每次点击镜像控件404后,第一旋转控件402的度数都会发生变化,其变化规则为newRulerAngle=-1×oldRulerAngle,oldRulerAngle指的是点击镜像控件404前的第一旋转控件402的度数,newRulerAngle指的是点击镜像控件404后的第一旋转控件402的度数。
旋转操作指的是将videoView(即视频画面301)绕着Z轴旋转,在进行旋转操作时,视频编辑应用可调用mVideoView.setRotation(degree)接口。镜像操作是将视频画面301绕着Y轴旋转0度或者180度,在进行镜像操作时,视频编辑应用可调用mVideoView.setRotationY(0/180)接口。
需要说明的是,可以将裁剪框401的宽度方向作为X轴,将裁剪框401的高度方向作为Y轴,Z轴指的是与X轴和Y轴均垂直的坐标轴。
步骤802,电子设备响应于触控操作,获取旋转过程中的视频画面中的各个顶点的第一顶点坐标以及裁剪框中的各个顶点的第二顶点坐标。
步骤803,电子设备根据第一顶点坐标和第二顶点坐标,计算视频画面的第一临界缩放比例。
电子设备在接收到对视频裁剪界面400中的第一旋转控件402的触控操作之后,响应于该触控操作,获取旋转过程中的视频画面301中的各个顶点的第一顶点坐标,以及裁剪框401中的各个顶点的第二顶点坐标;然后,根据第一顶点坐标和第二顶点坐标,计算得到视频画面301的第一临界缩放比例。
第一临界缩放比例指的是在当前的旋转角度下,视频画面301刚好能够撑满裁剪框401时的视频画面301的缩放倍数。视频画面301刚好能够撑满裁剪框401可以理解为裁剪框401不包括视频画面301外的非视频画面,且裁剪框401中的至少一个顶点位于视频画面301的边界线。
一种可选的实现方式中,电子设备根据视频画面301中的各个顶点的第一顶点坐标,计算得到视频画面301中的每相邻两个顶点之间形成的第一连线;电子设备根据裁剪框401中的各个顶点的第二顶点坐标,计算得到裁剪框401的中心点与裁剪框401中的每个顶点之间形成的第二连线;电子设备计算第一目标顶点对应的第一连线以及对应的第二连线之间形成的交点,得到第一目标顶点对应的目标交点,第一目标顶点为裁剪框401中的任意一个顶点,第一目标顶点对应的第一连线为视频画面301中与第一目标顶点距离最近的第一连线,第一目标顶点对应的第二连线为第一目标顶点与裁剪框401的中心点之间形成的第二连线;电子设备计算第一目标顶点与裁剪框401的中心点之间的第一间距,以及目标交点与裁剪框401的中心点之间的第二间距;电子设备根据第一间距和第二间距,计算视频画面的第一临界缩放比例。
具体的,电子设备将第一间距与第二间距的比值,确定为第一目标顶点对应的目标比例值;电子设备将裁剪框401中的各个顶点对应的目标比例值中的最大值,确定为视频画面301的第一临界缩放比例。
示例性的,如图9所示,旋转过程中的视频画面301中的四个顶点分别为P1顶点、P2顶点、P3顶点和P4顶点,裁剪框401中的各个顶点分别为C1顶点、C2顶点、C3顶点和C4顶点。
根据两点确定一条直线的计算公式,基于视频画面301中的P1顶点、P2顶点、P3顶点和P4顶点各自对应的第一顶点坐标,可得到视频画面301中的每相邻两个顶点之间形成的第一连线。其中,视频画面301包括的第一连线可以理解为视频画面301中的四条边界线,其包括:P1顶点与P2顶点之间形成的边界线、P2顶点与P3顶点之间形成的边界线,P3顶点与P4顶点之间形成的边界线,以及P1顶点与P4顶点之间形成的边界线。
center是裁剪框401的中心点。以屏幕左上角为坐标原点,裁剪框401的中心点的横坐标可以为:C1顶点的横坐标+裁剪框的宽度/2,裁剪框401的中心点的纵坐标可以为:C1顶点的纵坐标+裁剪框的高度/2。或者,裁剪框401的中心点的横坐标可以为:(C2顶点的横坐标-C1顶点的横坐标)/2+C1顶点的横坐标,裁剪框401的中心点的纵坐标可以为:C4顶点的纵坐标-C1顶点的纵坐标)/2+C1顶点的纵坐标。
根据两点确定一条直线的计算公式,基于裁剪框401中的C1顶点、C2顶点、C3顶点和C4顶点各自对应的第二顶点坐标,以及裁剪框401的中心点center的坐标,可得到裁剪框401的中心点center与裁剪框401中的每个顶点之间形成的第二连线。其中,裁剪框401的中心点与裁剪框401中的每个顶点之间形成的第二连线包括:裁剪框401的中心点center与C1顶点之间形成的连线、裁剪框401的中心点center与C2顶点之间形成的连线、裁剪框401的中心点center与C3顶点之间形成的连线,以及裁剪框401的中心点center与C4顶点之间形成的连线。
按照上述方式可计算得到8条连线对应的直线公式,按照对应关系两两相交,可通过两直线求交点的计算公式,计算得到第一连线和第二连线的交点。其中,第一连线与第二连线的交点包括S1交点、S2交点、S3交点和S4交点。
如图9中的(a)所示,针对未镜像处理的视频画面301,且第一旋转控件402向右滑动的场景,即rulerAngle(指的是对第一旋转控件402进行滑动操作导致的旋转角度的变化)大于0的场景。以第一目标顶点为C1顶点为例,第一目标顶点对应的第一连线为P1顶点-P4顶点的边界线,第一目标顶点对应的第二连线为center-C1顶点的连线,center-C1顶点的连线与P1顶点-P4顶点的边界线之间的交点为S1交点。以第一目标顶点为C2顶点为例,第一目标顶点对应的第一连线为P1顶点-P2顶点的边界线,第一目标顶点对应的第二连线为center-C2顶点的连线,center-C2顶点的连线与P1顶点-P2顶点的边界线之间的交点为S2交点。以第一目标顶点为C3顶点为例,第一目标顶点对应的第一连线为P2顶点-P3顶点的边界线,第一目标顶点对应的第二连线为center-C3顶点的连线,center-C3顶点的连线与P2顶点-P3顶点的边界线之间的交点为S3交点。以第一目标顶点为C4顶点为例,第一目标顶点对应的第一连线为P3顶点-P4顶点的边界线,第一目标顶点对应的第二连线为center-C4顶点的连线,center-C4顶点的连线与P3顶点-P4顶点的边界线之间的交点为S4交点。
如图9中的(b)所示,针对未镜像处理的视频画面301,且第一旋转控件402向左滑动的场景,即rulerAngle小于0的场景。center-C1顶点的连线与P1顶点-P2顶点的边界线之间的交点为S1交点,center-C2顶点的连线与P2顶点-P3顶点的边界线之间的交点为S2交点,center-C3顶点的连线与P3顶点-P4顶点的边界线之间的交点为S3交点,center-C4顶点的连线与P1顶点-P4顶点的边界线之间的交点为S4交点。
然后,电子设备计算裁剪框401的四个顶点分别与裁剪框401的中心点center之间各自对应的第一间距,即分别计算C1顶点与裁剪框401的中心点center之间的第一间距,C2顶点与裁剪框401的中心点center之间的第一间距,C3顶点与裁剪框401的中心点center之间的第一间距,以及C4顶点与裁剪框401的中心点center之间的第一间距。
并且,电子设备计算上述的四个交点分别与裁剪框401的中心点center之间各自对应的第二间距,即分别计算S1交点与裁剪框401的中心点center之间的第二间距,S2交点与裁剪框401的中心点center之间的第二间距,S3交点与裁剪框401的中心点center之间的第二间距,以及S4交点与裁剪框401的中心点center之间的第二间距。
接着,计算每个第一间距与各自对应的第二间距的比值,得到裁剪框401中的四个顶点各自对应的目标比例值。计算得到的四个目标比例值分别为:C1顶点与裁剪框401的中心点center之间的第一间距,除以S1交点与裁剪框401的中心点center之间的第二间距得到的目标比例值;C2顶点与裁剪框401的中心点center之间的第一间距,除以S2交点与裁剪框401的中心点center之间的第二间距得到的目标比例值;C3顶点与裁剪框401的中心点center之间的第一间距,除以S3交点与裁剪框401的中心点center之间的第二间距得到的目标比例值;C4顶点与裁剪框401的中心点center之间的第一间距,除以S4交点与裁剪框401的中心点center之间的第二间距得到的目标比例值。
最后,将上述计算得到的目标比例值中的最大值,确定为视频画面301的第一临界缩放比例。
在另一些实施例中,在计算得到第一连线与第二连线之间的S1交点、S2交点、S3交点和S4交点之后,也可以计算S1交点与S3交点之间的第三间距,S2交点与S4交点之间的第四间距,C1顶点与C3顶点之间的第五间距,以及C2顶点与C4顶点之间的第六间距;然后,计算第五间距与第三间距的比值,以及第六间距与第四间距的比值;最后,将第五间距与第三间距的比值以及第六间距与第四间距的比值中的最大值,确定为视频画面301的第一临界缩放比例。
步骤804,电子设备根据第一临界缩放比例,以及旋转过程中的视频画面相对于原始视频画面的第一缩放比例,确定裁剪框是否全部位于旋转过程中的视频画面内。
在一些实施例中,电子设备还需要获取旋转过程中,当前的视频画面相对于原始视频画面的第一缩放比例。
原始视频画面指的是在视频裁剪界面400刚开始显示时的视频画面。由于视频画面在进行缩放时是等比例缩放的,因此,第一缩放比例可以是当前的视频画面的宽度与原始视频画面的原始宽度的比值,或者,第一缩放比例也可以是当前的视频画面的高度与原始视频画面的原始高度的比值。
具体的,当第一临界缩放比例大于第一缩放比例时,电子设备确定裁剪框401中存在位于旋转过程中的视频画面301之外的区域;当第一临界缩放比例小于或等于第一缩放比例时,电子设备确定裁剪框401全部位于旋转过程中的视频画面301内。
当裁剪框401全部位于旋转过程中的视频画面301内时,视频画面301保持原状,电子设备不改变视频画面301的大小。而当裁剪框401中存在位于旋转过程中的视频画面301之外的区域时,电子设备执行下面的步骤805。
步骤805,当裁剪框中存在位于旋转过程中的视频画面之外的区域时,电子设备按照第一临界缩放比例对旋转过程中的视频画面进行放大操作,使得裁剪框全部位于放大后的视频画面内。
在一些实施例中,当裁剪框401中存在位于旋转过程中的视频画面301之外的区域时,为了使得裁剪框401不再包括除视频画面301之外的非视频画面,电子设备可调用第一临界缩放比例对旋转过程中的视频画面301进行放大操作,使得裁剪框401全部位于放大后的视频画面301内。
在采用第一临界缩放比例对旋转过程中的视频画面301进行放大操作时,视频画面301也是等比例放大的,即视频画面301的宽度和高度的放大比例均为第一临界缩放比例。
在一些场景中,本申请实施例还可以对视频裁剪界面400内的第二旋转控件403进行点击操作,使得电子设备接收对视频裁剪界面400内的第二旋转控件403的触控操作。第二旋转控件403用于在被触发时,根据点击的次数将视频画面301按照90°的整数倍进行旋转。
其中,每点击一次第二旋转控件403时,视频画面301逆时针旋转90°,即在原来的角度基础上叠加-90°。当未对视频画面301进行镜像处理时,即当mirror=0时,多次点击第二旋转控件403后视频画面301是逆时针旋转的,其旋转角度依次为0°,-90°,-180°以及-270°;当对视频画面301进行镜像处理后,即当mirror=180°时,多次点击第二旋转控件403后视频画面301是顺时针旋转的,旋转角度依次为0°,90°,180°以及270°。
因此,在对视频画面301进行旋转操作时,需要调用setRotation(degree)设置旋转角度。旋转角度包括对第一旋转控件402进行滑动操作对应的旋转角度,以及对第二旋转控件403进行点击操作对应的旋转角度,即degree=rotation+rulerAngle。rotation指的是对第二旋转控件403进行点击操作导致的旋转角度的变化。
针对裁剪框401的画幅比例为1:1的场景,当视频画面301发生90°的整数倍的旋转时,电子设备不会对视频画面301的尺寸进行放大。
针对裁剪框401的画幅比例不是1:1的场景,即裁剪框401的宽度和高度不相等的场景。若视频画面301发生90°旋转后,裁剪框401的宽度与高度都能会发生变更,即变更后的裁剪框401的宽度为变更前的裁剪框401的高度,变更后的裁剪框401的高度为变更前的裁剪框401的宽度,相应的,也会使得视频画面301的宽度和高度也需要按照裁剪框401的比例进行变化。
在视频画面301未旋转前,若裁剪框401的宽高比大于可操作区域的宽高比,则视频画面301旋转后的缩放比例为:可操作区域的高度与可操作区域的宽度的比值。在视频画面301未旋转前,若裁剪框401的宽高比小于可操作区域的宽高比,则视频画面301旋转后的缩放比例为:可操作区域的宽度与可操作区域的高度的比值。可操作区域指的是裁剪框401能够响应用户的手势操作的最大区域。
在一些可选的实施方式中,在使用视频裁剪功能时,用户也可以根据视频画面301中实际需要裁剪的位置,来调整裁剪框401的尺寸和位置,其可以通过裁剪框401的拖拽来实现。
裁剪框拖拽是视频裁剪的一个重要组成功能,裁剪框401有四条边界线和四个顶点,单指拖拽裁剪框401的边界线或顶点时,根据触控的位置不同,对应的处理方式也会不同。
为了保证拖拽裁剪框401的边界线或顶点时,能够按照当前的画幅比例去裁剪,因此将裁剪框401的拖拽分成两种情况去处理。一种情况下是自由画幅场景,另一种是固定画幅场景。
自由画幅(如点击“自由”画幅控件时的场景)指的是无需根据固定比例拖拽裁剪框401,在拖拽时裁剪框401的宽高比可以随意变化,拖拽位置在允许拖拽的范围之内,超出拖拽范围之后,保持之前的位置即可。固定画幅指的是按照画幅的固定比例(如9:16以及3:4等画幅比例)对裁剪框401进行等比例的缩小或放大。
以固定画幅为例,一种场景中,用户可以通过拖拽裁剪框401的四条边界线中的任意一条边界线,对裁剪框401的宽度和高度进行等比例的缩小或放大,此时,拖拽边界线相对的边界线的位置保持不变。如图10中的(a)所示,401a为拖拽前的裁剪框,可将裁剪框的下侧边界线向向上拖拽,则裁剪框的上侧边界线的位置保持不变,401b为边界线拖拽后的裁剪框,可以看出,拖拽前和拖拽后裁剪框的画幅比例是一致的。
以固定画幅为例,另一种场景中,用户也可以通过拖拽裁剪框401的四个顶点中的任意一个顶点,对裁剪框401的宽度和高度进行等比例的缩小或放大,此时,拖拽顶点对角线处的顶点位置不变。如图10中的(b)所示,401a为拖拽前的裁剪框,可将裁剪框的左下顶点向右上顶点的方向拖拽,则裁剪框的右上顶点的位置保持不变,401c为顶点拖拽后的裁剪框,可以看出,拖拽前和拖拽后裁剪框的画幅比例是一致的。
需要说明的是,裁剪框401在拖拽过程中会受到一些拖拽边界的限制,即拖拽边界需要满足以下三个条件:1、裁剪框401在缩小时,其宽度不能小于裁剪框401的最小宽度,其高度不能小于裁剪框401的最小高度,最小宽度和最小高度由裁剪框401对应的view(视图)控件决定;2、拖拽边界不能超出裁剪框401能够显示的最大范围(即可操作区域),裁剪框401能够显示的最大范围可以是上边界位于标题栏的下方,下边界位于视频裁剪界面400中的“重置”控件的上方,左边界距离屏幕左边缘预设的第一距离,右边界距离屏幕右边缘预设的第二距离,第一距离和第二距离可以相等,即裁剪框401能够显示的最大宽度=父布局宽度-左右间距,裁剪框401能够显示的最大高度=父布局高度-上下间距-标题栏的高度-控制栏(如“重置”控件)的高度。
如图11所示,第一矩形框63表示放大后的视频画面所在的区域,第二矩形框64(即父布局)表示裁剪框401能够显示的最大范围,第三矩形框65表示拖拽前的裁剪框401的位置,第四矩形框66表示裁剪框401允许拖拽的拖拽边界。
因此,拖拽边界的左边界可以取第一矩形框63与第二矩形框64的左边界的坐标值的最大值,即第一矩形框63的左边界为拖拽边界的左边界。拖拽边界的右边界可以取第一矩形框63与第二矩形框64的右边界的坐标值的最小值,即第二矩形框64的右边界为拖拽边界的右边界。拖拽边界的上边界可以取第一矩形框63与第二矩形框64的上边界的坐标值的最大值,即第一矩形框63的上边界为拖拽边界的上边界。拖拽边界的下边界可以取第一矩形框63与第二矩形框64的下边界的坐标值的最小值,即第二矩形框64的下边界为拖拽边界的下边界)。
上面的描述针对的是视频画面301的旋转角度为0°或90°的整数倍的场景下,对应的拖拽边界的确定方式这种情况下,可以比较视频画面301的区域边界与裁剪框401能够显示的最大范围的边界,从中选取上边界、下边界、左边界以及右边界等。
而针对视频画面301的旋转角度不为0°且不是90°的整数倍的情况下,电子设备可采用以下方式确定拖拽边界。
在视频画面301的旋转角度不为0°且不是90°的整数倍的情况下,电子设备接收对裁剪框401的拖拽操作;电子设备响应于拖拽操作,获取视频画面301中的各个顶点的第五顶点坐标;电子设备根据视频画面301中的各个顶点的第五顶点坐标,计算得到视频画面301中的每相邻两个顶点之间形成的第四连线;电子设备根据裁剪框401中的四条边界线的延长线与第四连线之间形成的交点对应的交点坐标,计算裁剪框401的拖拽边界;拖拽边界为裁剪框401允许拖拽的最大范围对应的边界。
示例性的,如图12所示,视频画面301中的四个顶点分别为P1顶点、P2顶点、P3顶点和P4顶点,裁剪框401中的各个顶点分别为C1顶点、C2顶点、C3顶点和C4顶点。
根据两点确定一条直线的计算公式,基于视频画面301中P1顶点、P2顶点、P3顶点和P4顶点各自对应的第五顶点坐标,可得到视频画面301中的每相邻两个顶点之间形成的第四连线。其中,视频画面301包括的第四连线分别为:P1顶点与P2顶点之间形成的边界线、P2顶点与P3顶点之间形成的边界线,P3顶点与P4顶点之间形成的边界线,以及P1顶点与P4顶点之间形成的边界线。
相应的,基于裁剪框401中的C1顶点、C2顶点、C3顶点和C4顶点,可得到根据裁剪框401中的四条边界线,其分别为C1顶点与C2顶点之间形成的边界线、C2顶点与C3顶点之间形成的边界线、C3顶点与C4顶点之间形成的边界线,以及C1顶点与C4顶点之间形成的边界线。
按照上述方式可得到8条边界线对应的直线公式,按照对应关系两两相交,可通过两直线求交点的计算公式,计算得到8个交点。
如图12中的(a)所示,针对rulerAngle大于0的场景。C1顶点-C4顶点的边界线的延长线与P1顶点-P4顶点的边界线之间的交点为Q1交点,C1顶点-C4顶点的边界线延长线与P3顶点-P4顶点的边界线之间的交点为Q2交点;C2顶点-C3顶点的边界线的延长线与P1顶点-P2顶点的边界线之间的交点为Q3交点,C2顶点-C3顶点的边界线的延长线与P2顶点-P3顶点的边界线之间的交点为Q4交点;C1顶点-C2顶点的边界线的延长线与P1顶点-P4顶点的边界线之间的交点为Q5交点,C1顶点-C2顶点的边界线的延长线与P1顶点-P2顶点的边界线之间的交点为Q6交点;C3顶点-C4顶点的边界线的延长线与P3顶点-P4顶点的边界线之间的交点为Q7交点,C3顶点-C4顶点的边界线的延长线与P2顶点-P3顶点的边界线之间的交点为Q8交点。
裁剪框401左侧的拖拽边界为Q5交点的横坐标与Q7交点的横坐标中的最大值,即图12中的(a)所示的Q5交点的横坐标。裁剪框401右侧的拖拽边界为Q6交点的横坐标与Q8交点的横坐标中的最小值,即图12中的(a)所示的Q8交点的横坐标。裁剪框401上侧的拖拽边界为Q1交点的纵坐标与Q3交点的纵坐标中的最大值,即图12中的(a)所示的Q1交点的纵坐标。裁剪框401下侧的拖拽边界为Q2交点的纵坐标与Q4交点的纵坐标中的最小值,即图12中的(a)所示的Q4交点的纵坐标。因此,图12中的(a)所示的四条黑色加粗线条表示裁剪框401的拖拽边界。
如图12中的(b)所示,针对rulerAngle小于0的场景。C1顶点-C4顶点的边界线的延长线与P1顶点-P2顶点的边界线之间的交点为Q1交点,C1顶点-C4顶点的边界线的延长线与P1顶点-P4顶点的边界线之间的交点为Q2交点;C2顶点-C3顶点的边界线的延长线与P2顶点-P3顶点的边界线之间的交点为Q3交点,C2顶点-C3顶点的边界线的延长线与P3顶点-P4顶点的边界线之间的交点为Q4交点;C1顶点-C2顶点的边界线的延长线与P1顶点-P2顶点的边界线之间的交点为Q5交点,C1顶点-C2顶点的边界线的延长线与P2顶点-P3顶点的边界线之间的交点为Q6交点;C3顶点-C4顶点的边界线的延长线与P1顶点-P4顶点的边界线之间的交点为Q7交点,C3顶点-C4顶点的边界线的延长线与P3顶点-P4顶点的边界线之间的交点为Q8交点。
裁剪框401左侧的拖拽边界为Q5交点的横坐标与Q7交点的横坐标中的最大值,即图12中的(b)所示的Q7交点的横坐标。裁剪框401右侧的拖拽边界为Q6交点的横坐标与Q8交点的横坐标中的最小值,即图12中的(b)所示的Q6交点的横坐标。裁剪框401上侧的拖拽边界为Q1交点的纵坐标与Q3交点的纵坐标中的最大值,即图12中的(b)所示的Q3交点的纵坐标。裁剪框401下侧的拖拽边界为Q2交点的纵坐标与Q4交点的纵坐标中的最小值,即图12中的(b)所示的Q2交点的纵坐标。因此,图12中的(b)所示的四条黑色加粗线条表示裁剪框401的拖拽边界。
在本申请实施例中,电子设备可根据用户手指触控的位置确定操作类型。当用户手指触控的位置位于裁剪框401的边界线或顶点上时,可确定操作类型是对裁剪框401进行拖拽;当单手指触控的位置位于裁剪框401的内部时,可确定操作类型是对视频画面301的拖拽操作;当双手指触控的位置位于裁剪框401的内部时,可确定操作类型是对视频画面301的缩放操作。因此,当确定操作类型是对裁剪框401进行拖拽时,可采用上述的方式确定出裁剪框401的拖拽边界。
示例性的,图13为本申请实施例提供的在视频画面拖拽后的视频处理方法的流程图。参照图13所示,视频画面拖拽后的视频处理方法具体可包括如下步骤:
步骤1301,电子设备接收对视频裁剪界面内显示的视频画面的拖拽操作。
在一些实施例中,当用户想要对视频裁剪界面400内显示的视频画面301进行平移时,用户可单手指触控裁剪框401内的视频画面301,并将视频画面301朝向一定方向进行拖动,则电子设备可接收到对视频裁剪界面400内显示的视频画面301的拖拽操作。
在拖拽视频画面301的过程中,需要注意以下两点:其中一点是在拖拽视频画面301的过程中,手指不能脱离屏幕上显示的视频画面301,另外一点是在拖拽结束且手指离开屏幕之后,需要增加回弹机制,使得裁剪框401内被视频画面301撑满,即裁剪框401内不会出现视频画面301以外的内容。
步骤1302,电子设备响应于拖拽操作,获取拖拽后的视频画面中的各个顶点的第三顶点坐标以及裁剪框中的各个顶点的第四顶点坐标。
步骤1303,电子设备根据第三顶点坐标和第四顶点坐标,确定裁剪框是否全部位于拖拽后的视频画面内。
在一些实施例中,电子设备在接收到对视频画面301的拖拽操作后,电子设备可响应于该拖拽操作,根据拖拽后的视频画面301中的各个顶点的第三顶点坐标以及裁剪框401中的各个顶点的第四顶点坐标,来判断裁剪框401是否全部位于拖拽后的视频画面301内。
若裁剪框401全部位于拖拽后的视频画面301内,则电子设备不对视频画面301进行回弹,视频画面301保持不变。
在对视频画面301的拖拽操作结束,且用户的手指离开屏幕后,电子设备可分为以下两种情况单独判断裁剪框401是否全部位于拖拽后的视频画面301内。
第一种情况,rulerAngle等于0的场景,即此时的视频画面301的旋转角度为0°或90°的整数倍的场景。这种情况下,电子设备将拖拽后的视频画面301的上边界值与裁剪框401的上边界值进行对比,将拖拽后的视频画面301的下边界值与裁剪框401的下边界值进行对比,将拖拽后的视频画面301的左边界值与裁剪框401的左边界值进行对比,以及将拖拽后的视频画面301的右边界值与裁剪框401的右边界值进行对比。
当裁剪框401的左边界值大于或等于拖拽后的视频画面301的左边界值,裁剪框401的右边界值小于或等于拖拽后的视频画面301的右边界值,裁剪框401的上边界值大于或等于拖拽后的视频画面301的上边界值,裁剪框401的下边界值小于或等于拖拽后的视频画面301的下边界值时,确定裁剪框401全部位于拖拽后的视频画面301内。
而当上述四个判定条件中的至少一个判定条件不符合时,确定裁剪框401中存在位于拖拽后的视频画面301外的区域。
裁剪框401的左边界值指的是裁剪框401的左上顶点和左下顶点的横坐标,视频画面301的左边界值指的是视频画面301的左上顶点和左下顶点的横坐标。裁剪框401的右边界值指的是裁剪框401的右上顶点和右下顶点的横坐标,视频画面301的右边界值指的是视频画面301的右上顶点和右下顶点的横坐标。裁剪框401的上边界指的是裁剪框401的左上顶点和右上顶点的纵坐标,视频画面301的上边界值指的是视频画面301的左上顶点和右上顶点的纵坐标。裁剪框401的下边界值指的是裁剪框401的左下顶点和右下顶点的纵坐标,视频画面301的下边界值指的是视频画面301的左下顶点和右下顶点的纵坐标。
需要说明的是,在对视频画面301逆时针旋转90°以后,视频画面301视觉意义上的左上顶点实际为视频画面301的右上顶点,视频画面301视觉意义上的左下顶点实际上为视频画面301的左上顶点,视频画面301视觉意义上的右下顶点实际上为视频画面301的左下顶点,视频画面301视觉意义上的右上顶点实际上为视频画面301的右下顶点。本方案针对这种对视频画面301旋转,但是旋转角度为90°的整数倍的情况,是依据视觉意义上的各顶点坐标与裁剪框401的顶点坐标进行比较,以确定是否回弹,以及在需要回弹时计算回弹距离。
第二种情况,rulerAngle不等于0的场景,即视频画面301的旋转角度不为0°且不是90°的整数倍的情况。这种情况下,电子设备根据视频画面301中的各个顶点的第三顶点坐标,计算得到视频画面301中的每相邻两个顶点之间形成的第三连线;电子设备计算裁剪框401中的各个顶点至对应的第三连线的垂点坐标;电子设备根据垂点坐标和第四顶点坐标,确定裁剪框401是否全部位于拖拽后的视频画面301内。
如图14所示,在拖拽操作结束之后,视频画面301中的四个顶点分别为P1顶点、P2顶点、P3顶点和P4顶点,裁剪框401中的各个顶点分别为C1顶点(即左上顶点)、C2顶点(即右上顶点)、C3顶点(即右下顶点)和C4顶点(即左下顶点)。
根据两点确定一条直线的计算公式,基于视频画面301中P1顶点、P2顶点、P3顶点和P4顶点各自对应的第三顶点坐标,可得到视频画面301中的每相邻两个顶点之间形成的第三连线。其中,视频画面301对应的第三连线包括:P1顶点与P2顶点之间形成的边界线、P2顶点与P3顶点之间形成的边界线,P3顶点与P4顶点之间形成的边界线,以及P1顶点与P4顶点之间形成的边界线。
电子设备计算裁剪框401中的各个顶点至对应的第三连线的垂点坐标,即裁剪框401中C1顶点、C2顶点、C3顶点和C4顶点,分别至对应的第三连线的垂点坐标。裁剪框401中的四个顶点对应的垂点分别为drop14、drop12、drop23和drop34,电子设备根据裁剪框401中的四个顶点对应的第四顶点坐标,以及四个顶点对应的垂点的垂点坐标,来判断裁剪框401是否全部位于拖拽后的视频画面301内。
如图14中的(a)所示,针对rulerAngle大于0的场景。drop14垂点为C1顶点至P1顶点-P4顶点的边界线上的垂点,drop12垂点为C2顶点至P1顶点-P2顶点的边界线上的垂点,drop23垂点为C3顶点至P2顶点-P3顶点的边界线上的垂点,drop34垂点为C4顶点至P3顶点-P4顶点的边界线上的垂点。
如图14中的(b)所示,针对rulerAngle小于0的场景。drop14垂点为C4顶点至P1顶点-P4顶点的边界线上的垂点,drop12垂点为C1顶点至P1顶点-P2顶点的边界线上的垂点,drop23垂点为C2顶点至P2顶点-P3顶点的边界线上的垂点,drop34垂点为C3顶点至P3顶点-P4顶点的边界线上的垂点。
当C1顶点和C4顶点的横坐标大于或等于drop14垂点的横坐标,C1顶点和C2顶点的纵坐标大于或等于drop12垂点的纵坐标,C2顶点和C3顶点的横坐标小于或等于drop23垂点的横坐标,且C3顶点和C4顶点的纵坐标小于或等于drop34垂点的纵坐标时,确定裁剪框401全部位于拖拽后的视频画面301内。
而当上述四个判定条件中的至少一个判定条件不符合时,确定裁剪框401中存在位于拖拽后的视频画面301外的区域。
步骤1304,当裁剪框中存在位于拖拽后的视频画面之外的区域时,电子设备按照回弹距离对拖拽后的视频画面进行回弹操作,使得裁剪框全部位于回弹后的视频画面内。
在一些实施例中,当裁剪框401中存在位于拖拽后的视频画面301之外的区域时,为了使得裁剪框401不再包括除视频画面301之外的非视频画面,电子设备可调用回弹距离对拖拽后的视频画面301进行回弹操作,使得裁剪框401全部位于回弹后的视频画面301内。
因此,在对拖拽后的视频画面301进行回弹操作之前,电子设备需要先计算视频画面301的回弹距离。电子设备可分为以下两种情况单独计算视频画面301的回弹距离。
第一种情况,rulerAngle等于0的场景,即此时的视频画面301的旋转角度为0°或90°的整数倍的场景。这种情况下,电子设备确定拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第五目标顶点;电子设备根据裁剪框401中与第五目标顶点方位一致的顶点对应的第四顶点坐标,以及第五目标顶点对应的第三顶点坐标,计算回弹距离。
若拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第五目标顶点为视频画面301的左上顶点,则裁剪框401中与第五目标顶点方位一致的顶点为裁剪框401的左上顶点。因此,当视频画面301的左上顶点的横坐标大于裁剪框401的左上顶点的横坐标时,X轴方向上的回弹距离等于裁剪框401的左上顶点的横坐标与视频画面301的左上顶点的横坐标的差值;当视频画面301的左上顶点的横坐标小于或等于裁剪框401的左上顶点的横坐标时,X轴方向上的回弹距离等于0。当视频画面301的左上顶点的纵坐标大于裁剪框401的左上顶点的纵坐标时,Y轴方向上的回弹距离等于裁剪框401的左上顶点的纵坐标与视频画面301的左上顶点的纵坐标的差值;当视频画面301的左上顶点的纵坐标小于或等于裁剪框401的左上顶点的纵坐标时,Y轴方向上的回弹距离等于0。
若拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第五目标顶点为视频画面301的右上顶点,则裁剪框401中与第五目标顶点方位一致的顶点为裁剪框401的右上顶点。因此,当视频画面301的右上顶点的横坐标小于裁剪框401的右上顶点的横坐标时,X轴方向上的回弹距离等于裁剪框401的右上顶点的横坐标与视频画面301的右上顶点的横坐标的差值;当视频画面301的右上顶点的横坐标大于或等于裁剪框401的右上顶点的横坐标时,X轴方向上的回弹距离等于0。当视频画面301的右上顶点的纵坐标大于裁剪框401的右上顶点的纵坐标时,Y轴方向上的回弹距离等于裁剪框401的右上顶点的纵坐标与视频画面301的右上顶点的纵坐标的差值;当视频画面301的右上顶点的纵坐标小于或等于裁剪框401的右上顶点的纵坐标时,Y轴方向上的回弹距离等于0。
若拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第五目标顶点为视频画面301的右下顶点,则裁剪框401中与第五目标顶点方位一致的顶点为裁剪框401的右下顶点。因此,当视频画面301的右下顶点的横坐标小于裁剪框401的右下顶点的横坐标时,X轴方向上的回弹距离等于裁剪框401的右下顶点的横坐标与视频画面301的右下顶点的横坐标的差值;当视频画面301的右下顶点的横坐标大于或等于裁剪框401的右下顶点的横坐标时,X轴方向上的回弹距离等于0。当视频画面301的右下顶点的纵坐标小于裁剪框401的右下顶点的纵坐标时,Y轴方向上的回弹距离等于裁剪框401的右下顶点的纵坐标与视频画面301的右下顶点的纵坐标的差值;当视频画面301的右下顶点的纵坐标大于或等于裁剪框401的右下顶点的纵坐标时,Y轴方向上的回弹距离等于0。
若拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第五目标顶点为视频画面301的左下顶点,则裁剪框401中与第五目标顶点方位一致的顶点为裁剪框401的左下顶点。因此,当视频画面301的左下顶点的横坐标大于裁剪框401的左下顶点的横坐标时,X轴方向上的回弹距离等于裁剪框401的左下顶点的横坐标与视频画面301的左下顶点的横坐标的差值;当视频画面301的左下顶点的横坐标小于或等于裁剪框401的左下顶点的横坐标时,X轴方向上的回弹距离等于0。当视频画面301的左下顶点的纵坐标小于裁剪框401的左下顶点的纵坐标时,Y轴方向上的回弹距离等于裁剪框401的左下顶点的纵坐标与视频画面301的左下顶点的纵坐标的差值;当视频画面301的左下顶点的纵坐标大于或等于裁剪框401的左下顶点的纵坐标时,Y轴方向上的回弹距离等于0。
第二种情况,rulerAngle不等于0的场景,即视频画面301的旋转角度不为0°且不是90°的整数倍的情况。这种情况下,电子设备确定拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第二目标顶点;电子设备获取第二目标顶点对应的临界点的临界坐标,临界点与第二目标顶点的方位一致;电子设备根据第二目标顶点对应的第三顶点坐标、临界点对应的临界坐标、第三目标顶点对应的第四顶点坐标,以及两个目标垂点对应的垂点坐标,确定裁剪框401中位于拖拽后的视频画面301之外的顶点数量是否大于1。其中,第三目标顶点为裁剪框401中与第二目标顶点方位一致的顶点,目标垂点为裁剪框401中第二目标顶点对应的两个顶点,至视频画面301中与第二目标顶点相邻的两条边界线上的垂点。
当裁剪框401中的至少两个顶点位于拖拽后的视频画面301之外时,电子设备将临界点与第二目标顶点之间的偏离距离,作为回弹距离。当裁剪框中的一个顶点位于拖拽后的视频画面301之外时,电子设备获取裁剪框401中位于视频画面301之外的第四目标顶点对应的第四顶点坐标;电子设备将第四目标顶点对应的第四顶点坐标,与其对应的目标垂点的垂点坐标之间的偏离距离,作为回弹距离。
第一种情况,针对拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第二目标顶点为视频画面301的左上顶点(即P1顶点)的场景。裁剪框401中的第三目标顶点为裁剪框401中的左上顶点(即C1顶点),两个目标垂点为drop14垂点和drop12垂点。
因此,电子设备可根据P1顶点对应的第三顶点坐标、P1顶点对应的临界点的临界坐标、C1顶点对应的第四顶点坐标、drop14垂点的垂点坐标以及drop12垂点的垂点坐标,确定裁剪框401中位于拖拽后的视频画面301之外的顶点数量是否大于1。
P1顶点对应的临界点可称为左上临界点leftTop,其可根据裁剪框401中的C1顶点的第四顶点坐标、裁剪框401的宽度或高度,以及视频画面301在第一旋转控件402触发下的旋转角度(即rulerAngle)计算得到。具体的,当rulerAngle大于0时,左上临界点leftTop的横坐标等于C1顶点的横坐标+wSin,左上临界点leftTop的纵坐标等于C1顶点的纵坐标-wCos;当rulerAngle小于0时,左上临界点leftTop的横坐标等于C1顶点的横坐标-hCos,左上临界点leftTop的纵坐标等于C1顶点的纵坐标+hSin。其中,wSin=裁剪框401的宽度×sin(rulerAngle)×sin(rulerAngle),wCos=裁剪框401的宽度×sin(rulerAngle)×cos(rulerAngle),hSin=裁剪框401的高度×sin(rulerAngle)×sin(rulerAngle),hCos=裁剪框401的高度sin(rulerAngle)×cos(rulerAngle)。
当P1顶点对应的第三顶点坐标以及左上临界点leftTop的临界坐标满足第一条件时,确定裁剪框401中的至少两个顶点位于拖拽后的视频画面301之外。其中,当P1顶点的横坐标大于左上临界点leftTop的横坐标,且P1顶点的纵坐标大于左上临界点leftTop的纵坐标时,其满足第一条件;当P1顶点的横坐标小于或等于左上临界点leftTop的横坐标,和/或,P1顶点的纵坐标小于或等于左上临界点leftTop的纵坐标时,其不满足第一条件。
在P1顶点对应的第三顶点坐标以及左上临界点leftTop的临界坐标不满足第一条件时,继续根据C1顶点对应的第四顶点坐标、drop14垂点的垂点坐标以及drop12垂点的垂点坐标,确定其是否满足第二条件,当满足第二条件时确定裁剪框401中的至少两个顶点位于拖拽后的视频画面301之外,当还不满足第二条件时确定裁剪框401中的一个顶点位于拖拽后的视频画面301之外。
其中,当C1顶点的横坐标小于drop14垂点的横坐标,且C1顶点的纵坐标小于drop12垂点的纵坐标时,其满足第二条件;当C1顶点的横坐标大于或等于drop14垂点的横坐标,和/或,C1顶点的纵坐标大于或等于drop12垂点的纵坐标时,其不满足第二条件。
在满足上述的第一条件或第二条件的情况下,电子设备将左上临界点leftTop与P1顶点之间的偏离距离,作为回弹距离。即X轴方向上的回弹距离等于左上临界点leftTop的横坐标-P1顶点的横坐标,Y轴方向上的回弹距离等于左上临界点leftTop的纵坐标-P1顶点的纵坐标。
如图15所示,301a表示拖拽后未回弹时的视频画面,裁剪框401中的C1顶点和C2顶点均位于视频画面外,则在拖拽操作完成后,将视频画面的左上顶点P1回弹至左上临界点leftTop,301b表示回弹后的视频画面。
在不满足上述的第一条件和第二条件的情况下。当C1顶点的横坐标小于drop14垂点的横坐标,C1顶点的纵坐标大于或等于drop12垂点的纵坐标,且rulerAngle大于0时,说明裁剪框401中的第四目标顶点为C1顶点,因此,X轴方向上的回弹距离等于C1顶点的横坐标-drop14垂点的横坐标,Y轴方向上的回弹距离等于C1顶点的纵坐标-drop14垂点的纵坐标。而当C1顶点的横坐标小于drop14垂点的横坐标,且C1顶点的纵坐标大于或等于drop12垂点的纵坐标,且rulerAngle小于0时,说明裁剪框401中的第四目标顶点为C4顶点,因此,X轴方向上的回弹距离等于C4顶点的横坐标-drop14垂点的横坐标,Y轴方向上的回弹距离等于C4顶点的纵坐标-drop14垂点的纵坐标。
在不满足上述的第一条件和第二条件的情况下。当C1顶点的横坐标大于或等于drop14垂点的横坐标,且C1顶点的纵坐标小于drop12垂点的纵坐标,且rulerAngle大于0时,说明裁剪框401中的第四目标顶点为C2顶点,因此,X轴方向上的回弹距离等于C2顶点的横坐标-drop12垂点的横坐标,Y轴方向上的回弹距离等于C2顶点的纵坐标-drop12垂点的纵坐标。当C1顶点的横坐标大于或等于drop14垂点的横坐标,且C1顶点的纵坐标小于drop12垂点的纵坐标,且rulerAngle小于时,说明裁剪框401中的第四目标顶点为C1顶点,因此,X轴方向上的回弹距离等于C1顶点的横坐标-drop12垂点的横坐标,Y轴方向上的回弹距离等于C1顶点的纵坐标-drop12垂点的纵坐标。
如图16所示,301a表示拖拽后未回弹时的视频画面,裁剪框401中的C1顶点位于视频画面外,则在拖拽操作完成后,将视频画面的drop14垂点回弹至C1顶点。
第二种情况,针对拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第二目标顶点为视频画面301的右上顶点(即P2顶点)的场景。裁剪框401中的第三目标顶点为裁剪框401中的右上顶点(即C2顶点),两个目标垂点为drop23垂点和drop12垂点。
P2顶点对应的临界点可称为右上临界点rightTop。当rulerAngle大于0时,右上临界点rightTop的横坐标等于C2顶点的横坐标+hCos,右上临界点rightTop的纵坐标等于C2顶点的纵坐标+hSin;当rulerAngle小于0时,右上临界点rightTop的横坐标等于C2顶点的横坐标-wSin,右上临界点rightTop的纵坐标等于C2顶点的纵坐标-wCos。
当P2顶点的横坐标小于右上临界点rightTop的横坐标,且P2顶点的纵坐标大于右上临界点rightTop的纵坐标时,其满足第一条件,否则不满足第一条件。进一步的,当C2顶点的纵坐标小于drop12垂点的纵坐标,且C2顶点的横坐标大于drop23垂点的横坐标时,其满足第二条件。
在满足上述的第一条件或第二条件的情况下,电子设备将右上临界点rightTop与P2顶点之间的偏离距离,作为回弹距离。即X轴方向上的回弹距离等于右上临界点rightTop的横坐标-P2顶点的横坐标,Y轴方向上的回弹距离等于右上临界点rightTop的纵坐标-P2顶点的纵坐标。
在不满足上述的第一条件和第二条件的情况下。当C2顶点的横坐标小于或等于drop23垂点的横坐标,且C2顶点的纵坐标小于drop12垂点的纵坐标时,X轴方向上的回弹距离等于x12-drop12垂点的横坐标,Y轴方向上的回弹距离等于C2顶点的纵坐标-drop12垂点的纵坐标。其中,当rulerAngle大于0时,x12表示C2顶点的横坐标;当rulerAngle小于0时,x12表示C1顶点的横坐标。
在不满足上述的第一条件和第二条件的情况下。当C2顶点的横坐标大于drop23垂点的横坐标,且C2顶点的纵坐标大于或等于drop12垂点的纵坐标时,X轴方向上的回弹距离等于C2顶点的横坐标-drop23垂点的横坐标,Y轴方向上的回弹距离等于y23-drop23垂点的纵坐标。其中,当rulerAngle大于0时,y23表示C3顶点的纵坐标;当rulerAngle小于0时,y23表示C2顶点的纵坐标。
第三种情况,针对拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第二目标顶点为视频画面301的右下顶点(即P3顶点)的场景。裁剪框401中的第三目标顶点为裁剪框401中的右下顶点(即C3顶点),两个目标垂点为drop34垂点和drop23垂点。
P3顶点对应的临界点可称为右下临界点rightBottom。当rulerAngle大于0时,右下临界点rightBottom的横坐标=C3顶点的横坐标-wSin,右下临界点rightBottom的纵坐标=C3顶点的纵坐标+wCos;当rulerAngle小于0时,右下临界点rightBottom的横坐标=C3顶点的横坐标+hCos,右下临界点rightBottom的纵坐标=C3顶点的纵坐标-hSin。
当P3顶点的横坐标小于右下临界点rightBottom的横坐标,且P3顶点的纵坐标小于右下临界点rightBottom的纵坐标,其满足第一条件,否则不满足第一条件。进一步的,当C3顶点的纵坐标大于drop34垂点的纵坐标,且C3顶点的横坐标大于drop23垂点的横坐标时,其满足第二条件。
在满足上述的第一条件或第二条件的情况下,电子设备将右下临界点rightBottom与P3顶点之间的偏离距离,作为回弹距离。即X轴方向上的回弹距离等于右下临界点rightBottom的横坐标-P3顶点的横坐标,Y轴方向上的回弹距离等于右下临界点rightBottom的纵坐标-P3顶点的纵坐标。
在不满足上述的第一条件和第二条件的情况下。当C3顶点的纵坐标大于drop34垂点的纵坐标,且C3顶点的横坐标小于或等于drop23垂点的横坐标时,X轴方向上的回弹距离等于x34-drop34垂点的横坐标,Y轴方向上的回弹距离等于C3顶点的纵坐标-drop34垂点的纵坐标。其中,当rulerAngle大于0时,x34表示C4顶点的横坐标;当rulerAngle小于0时,x34表示C3顶点的横坐标。
在不满足上述的第一条件和第二条件的情况下。当C3顶点的横坐标大于drop23垂点的横坐标,且C3顶点的纵坐标小于或等于drop34垂点的纵坐标时,X轴方向上的回弹距离等于C3顶点的横坐标-drop23垂点的横坐标,Y轴方向上的回弹距离等于y23-drop23垂点的纵坐标。其中,当rulerAngle大于0时,y23表示C3顶点的纵坐标;当rulerAngle小于0时,y23表示C2顶点的纵坐标。
第四种情况,针对拖拽后的视频画面301中的各个顶点中,与裁剪框401的中心点距离最近的第二目标顶点为视频画面301的左下顶点(即P4顶点)的场景。裁剪框401中的第三目标顶点为裁剪框401中的左下顶点(即C4顶点),两个目标垂点为drop34垂点和drop14垂点。
P4顶点对应的临界点可称为左下临界点leftBottom。当rulerAngle大于0时,左下临界点leftBottom的横坐标=C4顶点的横坐标-hCos,左下临界点leftBottom的纵坐标=C4顶点的纵坐标-hSin;当rulerAngle小于0时,左下临界点leftBottom的横坐标=C4顶点的横坐标+wSin,左下临界点leftBottom的纵坐标=C4顶点的纵坐标+wCos。
当P4顶点的横坐标大于左下临界点leftBottom的横坐标,且P4顶点的纵坐标小于左下临界点leftBottom的纵坐标时,其满足第一条件,否则不满足第一条件。进一步的,当C4顶点的横坐标小于drop14垂点的横坐标,且C4顶点的纵坐标大于drop34垂点的纵坐标时,其满足第二条件。
在满足上述的第一条件或第二条件的情况下,电子设备将左下临界点leftBottom与P4顶点之间的偏离距离,作为回弹距离。即X轴方向上的回弹距离等于左下临界点leftBottom的横坐标-P4顶点的横坐标,Y轴方向上的回弹距离等于左下临界点leftBottom的纵坐标-P4顶点的纵坐标。
在不满足上述的第一条件和第二条件的情况下。当C4顶点的横坐标小于drop14垂点的横坐标,且C4顶点的纵坐标小于或等于drop34垂点的纵坐标时,X轴方向上的回弹距离等于C4顶点的横坐标-drop14垂点的横坐标,Y轴方向上的回弹距离等于y14-drop14垂点的纵坐标。其中,当rulerAngle大于0时,y14表示C1顶点的纵坐标;当rulerAngle小于0时,y14表示C4顶点的纵坐标。
在不满足上述的第一条件和第二条件的情况下。当C4顶点的纵坐标大于drop34垂点的纵坐标,且C4顶点的横坐标大于或等于drop14垂点的横坐标时,X轴方向上的回弹距离等于x34-drop34垂点的横坐标,Y轴方向上的回弹距离等于C4顶点的纵坐标-drop34垂点的纵坐标。其中,当rulerAngle大于0时,x34表示C4顶点的横坐标;当rulerAngle小于0时,x34表示C3顶点的横坐标。
示例性的,图17为本申请实施例提供的在视频画面缩放后的视频处理方法的流程图。参照图17所示,视频画面缩放后的视频处理方法具体可以包括如下步骤:
步骤1701,电子设备接收对视频裁剪界面内显示的视频画面的缩放操作。
在一些实施例中,当用户想要对视频裁剪界面400内显示的视频画面301进行缩放时,用户可双手指触控裁剪框401内的视频画面301,且两个手指向逐渐远离或靠近的方向滑动,则电子设备可接收到对视频裁剪界面400内显示的视频画面301的缩放操作。
其中,在用户双手指触控裁剪框401内的视频画面301后,当两个手指的距离逐渐变大时,是对视频画面301进行放大操作,而当两个手指的距离逐渐变小时,是对视频画面301进行缩小操作。
步骤1702,电子设备响应于缩放操作,获取缩放后的视频画面相对于原始视频画面的第二缩放比例。
步骤1703,电子设备计算视频画面的第二临界缩放比例。
在实际使用过程中,视频画面301的放大操作没有上限,原则上视频画面301可以无限放大;但是缩小操作需要遵循一个规则,即在视频画面301的缩小操作结束,用户的手指离开屏幕之后,需要控制裁剪框401全部位于缩放后的视频画面301内,即视频画面301能够撑满裁剪框401。
将视频画面301的缩小操作结束后,视频画面301能够刚好撑满裁剪框401时视频画面301的缩放倍数,称为第二临界缩放比例。
在一些实施例中,电子设备在接收到对视频画面301的缩放操作后,电子设备可响应于该缩放操作,分别计算缩放后的视频画面301相对于原始视频画面的第二缩放比例,以及视频画面的第二临界缩放比例;并且,电子设备需要判断当前视频画面相对于原始视频画面的第二缩放比例,与第二临界缩放比例的大小关系,以确定是否需要对视频画面301进行放大回弹。
在手指触视频画面301时,可以计算两手指之间的距离作为初始距离,然后计算缩放过程中两手指之间的最新距离,将最新距离与初始距离的比值作为第二缩放比例。在实际缩放过程中,会不断计算第二缩放比例。
而第二临界缩放比例的计算方式可分为以下两种情况单独计算。
第一种情况,rulerAngle等于0的场景,即此时的视频画面301的旋转角度为0°或90°的整数倍的场景。这种情况下,电子设备将裁剪框401的目标尺寸与视频画面301的原始尺寸的比值,作为第二临界缩放比例;其中,裁剪框401的目标尺寸为裁剪框401的高度,视频画面301的原始尺寸为视频画面301的原始高度;或者,裁剪框401的目标尺寸为裁剪框401的宽度,视频画面301的原始尺寸为视频画面301的原始宽度。
视频画面301的原始高度指的是在视频裁剪界面400刚开始显示时的视频画面的高度;视频画面301的原始宽度指的是在视频裁剪界面400刚开始显示时的视频画面的宽度。
具体的,电子设备可先判断裁剪框401是宽撑满还是高撑满。当裁剪框401的宽高比小于可操作区域的宽高比时,确定裁剪框401是高撑满,当裁剪框401的宽高比大于可操作区域的宽高比时,确定裁剪框401是宽撑满。可操作区域指的是裁剪框401能够响应用户的手势操作的最大区域。
针对裁剪框401的高撑满的情况,电子设备计算裁剪框401的高度与视频画面301的原始高度的第一比值,接着,判断视频画面301的原始宽度与第一比值的乘积是否小于裁剪框401的宽度。当视频画面301的原始宽度与第一比值的乘积大于或等于裁剪框401的宽度时,第二临界缩放比例等于裁剪框401的高度与视频画面301的原始高度的第一比值;当视频画面301的原始宽度与第一比值的乘积小于裁剪框401的宽度时,第二临界缩放比例等于裁剪框401的宽度与视频画面301的原始宽度的比值。
针对裁剪框401的宽撑满的情况,电子设备计算裁剪框401的宽度与视频画面301的原始宽度的第二比值,接着,判断视频画面301的原始高度与第二比值的乘积是否小于裁剪框401的高度。当视频画面301的原始高度与第二比值的乘积大于或等于裁剪框401的高度时,第二临界缩放比例等于裁剪框401的宽度与视频画面301的原始宽度的第二比值;当视频画面301的原始高度与第二比值的乘积小于裁剪框401的高度时,第二临界缩放比例等于裁剪框401的高度与视频画面301的原始高度。
第二种情况,rulerAngle不等于0的场景,即视频画面301的旋转角度不为0°且不是90°的整数倍的情况。这种情况下,电子设备根据裁剪框401的宽度、裁剪框401的高度以及视频画面301在第一旋转控件触发下的旋转角度(即rulerAngle),计算得到视频画面301的临界距离;电子设备将临界距离与视频画面301的原始尺寸的比值,确定为第二临界缩放比例;视频画面301的原始尺寸为视频画面301的原始宽度或视频画面301的原始高度。
具体的,可根据视频画面301的横/竖屏状态,以及第二旋转控件403的点击次数等因素的影响,rulerAngle不等于0时的第二临界缩放比例的计算方式不同。示例性的,当视频画面301的宽度大于或等于视频画面301的高度时,则视频画面301的初始显示状态为横屏显示;当视频画面301的宽度小于视频画面301的高度时,则视频画面301的初始显示状态为竖屏状态。
第一种,当视频画面301的初始显示状态为横屏显示,且第二旋转控件403的点击次数为0或偶数次时,临界距离等于裁剪框401的宽度×sin(rulerAngle)+裁剪框401的高度×cos(rulerAngle),第二临界缩放比例等于临界距离与视频画面301的原始高度的比值。
第二种,当视频画面301的初始显示状态为横屏显示,且第二旋转控件403的点击次数为奇数次时,临界距离等于裁剪框401的高度×sin(rulerAngle)+裁剪框401的宽度×cos(rulerAngle),第二临界缩放比例等于临界距离与视频画面301的原始高度的比值。
第三种,当视频画面301的初始显示状态为竖屏显示,且第二旋转控件403的点击次数为0或偶数次时,临界距离等于裁剪框401的高度×sin(rulerAngle)+裁剪框401的宽度×cos(rulerAngle),第二临界缩放比例等于临界距离与视频画面301的原始宽度的比值。
第四种,当视频画面301的初始显示状态为竖屏显示,且第二旋转控件403的点击次数为奇数次时,临界距离等于裁剪框401的宽度×sin(rulerAngle)+裁剪框401的高度×cos(rulerAngle),第二临界缩放比例等于临界距离与视频画面301的原始宽度的比值。
如图18所示,301d表示刚好撑满裁剪框401时对应的视频画面,C6垂点为裁剪框401的C4顶点至P1顶点-P4顶点的边界线的垂点,C5垂点为裁剪框401的C4顶点至P2顶点-P3顶点的边界线的垂点。C4顶点与C6垂点之间的距离等于裁剪框401的高度×sin(rulerAngle),C4顶点与C5垂点之间的距离等于裁剪框401的宽度×cos(rulerAngle),C5垂点与C6垂点之间的距离也就是临界距离。此时的第二临界缩放比例等于C5垂点与C6垂点之间的距离,除以视频画面301的原始宽度。
步骤1704,电子设备根据第二临界缩放比例和第二缩放比例,确定裁剪框是否全部位于缩放后的视频画面内。
在一些实施例中,当第二临界缩放比例大于第二缩放比例时,电子设备确定裁剪框401中存在位于缩放后的视频画面301之外的区域;当第二临界缩放比例小于或等于第二缩放比例时,电子设备确定裁剪框401全部位于缩放后的视频画面301内。
当裁剪框401全部位于缩放后的视频画面301内时,则电子设备不对视频画面301进行放大,视频画面301保持不变。而当裁剪框401中存在位于缩放后的视频画面301之外的区域时,电子设备执行下面的步骤1705。
步骤1705,当裁剪框中存在位于缩放后的视频画面之外的区域时,电子设备按照第二临界缩放比例对缩放后的视频画面进行放大操作,使得裁剪框全部位于放大后的视频画面内。
在一些实施例中,当裁剪框401中存在位于缩放后的视频画面301之外的区域时,为了使得裁剪框401不再包括除视频画面301之外的非视频画面,电子设备可调用第二临界缩放比例对缩放后的视频画面301进行放大操作,使得裁剪框401全部位于放大后的视频画面301内。
在另一些场景中,用户在对视频画面301进行缩放处理,并对缩放处理后的视频画面301进行拖拽后,电子设备需要更新视频画面301的轴点。轴点指的是视频画面301旋转或缩放时的中心点。
在未对已缩放的视频画面301进行拖拽的情况下,视频画面301的轴点默认是视频画面301的中心点。轴点的坐标体系,是以原始视频画面的左上角作为X轴的0点以及Y轴的0点。例如,原始视频画面的宽度和高度为100*100时,原始视频画面的原始轴点的坐标值为50*50。轴点的坐标值不能超出视频画面的宽度和高度。
在对视频画面301进行旋转或缩放时,视频画面301均是以视频画面301的中心点作为轴点来变化的。在使用过程中,在对已缩放的视频画面301进行拖拽后,用户再次旋转或缩放视频画面时,若依旧采用视频画面301的中心点作为轴点,则有可能导致部分视频画面301会出现在裁剪框401外。
基于此,本申请实施例需要始终以裁剪框401的中心点来作为视频画面301的轴点。在对已缩放的视频画面301进行拖拽后,视频画面301的中心点与裁剪框401的中心点之间发生偏离,因此,在对已缩放的视频画面301进行拖拽后,电子设备需要更新视频画面301的轴点,使得更新后的视频画面301的轴点为裁剪框401的中心点,后续电子设备是以更新后的轴点来对视频画面301进行旋转或缩放的。
轴点坐标的计算始终依赖于视频画面301的原始宽度和原始高度来计算。例如,100*100的原始视频画面,默认的轴点为(50,50),此时,在对原始视频画面放大两倍以后,视频画面的宽度和高度变为200*200。本申请实施例对视频画面301的轴点进行更新后,更新后的轴点坐标依旧为(50,50)。
在一些实施例中,可采用如下方式更新视频画面301的轴点:在对缩放后的视频画面301进行拖拽操作后,电子设备获取拖拽后的视频画面301的各个顶点的第六顶点坐标和视频画面301的实际缩放比例;电子设备根据第六顶点坐标和裁剪框401的中心点,确定视频画面301的第一轴点;电子设备根据第一轴点在拖拽后的视频画面301中的实际位置,确定视频画面301在以实际缩放比例缩小后的视频画面301中对应的第二轴点,此时的视频画面301是以原始轴点为缩放中心点进行缩小的;电子设备计算第六顶点坐标,与视频画面301在以实际缩放比例放大后的实际顶点坐标之间的偏离值,此时的视频画面301是以第二轴点为缩放中心点进行放大的;电子设备根据偏离值更新视频画面301的坐标。
其中,电子设备根据第六顶点坐标,计算得到拖拽后的视频画面301的第五连线和第六连线,第五连线和第六连线为拖拽后的视频画面301中相邻的两条边界线;电子设备计算裁剪框401的中心点至第五连线的第一轴点距离,以及裁剪框401的中心点至第六连线的第二轴点距离;电子设备采用第一轴点距离除以视频画面301的实际宽度,再乘以视频画面301的原始宽度,得到第一轴点的横坐标;电子设备采用第二轴点距离除以视频画面301的实际高度,再乘以视频画面301的原始高度,得到第一轴点的纵坐标。
视频画面301的实际缩放比例指的是,在对已缩放的视频画面301进行拖拽操作后,当前的视频画面301的宽度与视频画面的原始宽度的比值,或者,是当前的视频画面301的高度与视频画面的原始高度的比值。
如图19中的(a)所示,拖拽后的视频画面301的各个顶点分别为P1顶点、P2顶点、P3顶点和P4顶点。基于P1顶点和P4顶点对应的第六顶点坐标可计算得到第五连线,即第五连线为P1顶点-P4顶点的边界线;并且,基于P1顶点和P2顶点对应的第六顶点坐标可计算得到第六连线,即第六连线为P1顶点-P2顶点的边界线。
电子设备可根据点到直线的距离公式计算得到第一轴点。具体的,先计算裁剪框401的中心点至P1顶点-P4顶点的边界线的第一轴点距离,以及裁剪框401的中心点至P1顶点-P2顶点的边界线的第二轴点距离。第一轴点的横坐标等于第一轴点距离除以视频画面301的实际宽度后再乘以视频画面301的原始宽度,第一轴点的纵坐标等于第二轴点距离除以视频画面301的实际高度后再乘以视频画面301的原始高度。
如图19中的(a)所示,视频画面301的原始轴点为pivot1,在采用上述方式计算的第一轴点为pivot2。其是针对一个宽高比为1:1的视频画面,将该视频画面放大2倍,并将其朝向右下侧拖拽后,使得视频画面301的左上顶点与裁剪框401的左上顶点重合时的示意图。
然后,电子设备根据实际缩放比例,以视频画面301的原始轴点为缩放中心点对视频画面301进行缩小操作。示例性的,如图19中的(b)所示,实际缩放比例为2,则电子设备以原始轴点pivot1为缩放中心点,将视频画面301的宽度和高度均缩小1/2。
接着,电子设备根据第一轴点在缩小前的视频画面301中的实际位置,确定缩小后的视频画面301中的第二轴点。即电子设备可调用视频画面301的setPivotX/Y的方法,将计算得到第一轴点更新至缩小后的视频画面301中。
示例性的,如图19中的(c)所示,由于计算得到的第一轴点pivot2位于缩小前的视频画面301中的1/4处(X轴方向和Y轴方向均为1/4处),因此,在缩小后的视频画面301中的1/4处更新得到第二轴点pivot3。
在更新得到第二轴点后,电子设备再根据实际缩放比例,以第二轴点为缩放中心点对视频画面301进行放大操作。示例性的,如图19中的(d)所示,实际缩放比例为2,则电子设备以第二轴点pivot3为缩放中心点,将视频画面301的宽度和高度均放大2倍。
最后,电子设备计算第六顶点坐标与放大后的视频画面301的实际顶点坐标之间的偏离值,并根据偏离值更新视频画面301的坐标。
示例性的,如图19中的(d)所示,以第二轴点pivot3为缩放中心点并以实际缩放比例对视频画面301进行放大,放大后的视频画面301的顶点相对于图19中的(a)所示的视频画面301的顶点之间存在偏差,因此,需要对放大后的视频画面301的顶点的偏离进行位移补偿,以准确调整视频画面301的轴点。
由于之前在对已缩放的视频画面拖拽后,视频画面301的左上顶点是与裁剪框401的左上顶点重合,因此,拖拽后的视频画面301的左上顶点的第六顶点坐标也就是裁剪框401的左上顶点(即C1顶点)的坐标,此时,根据C1顶点的坐标与图19中的(d)所示的视频画面301的左上顶点(即P1顶点)的实际顶点坐标之间的偏离值,对视频画面301的坐标进行位移补偿。其中,位移补偿后的视频画面的第二轴点pivot3,依旧位于位移补偿后的视频画面301的1/4处。
上述过程描述了视频画面301旋转过程中的第一临界缩放比例的计算过程,裁剪框401的拖拽时的拖拽边界的计算过程,视频画面301拖拽后的回弹距离的计算过程,视频画面301缩放后的第二临界缩放比例的计算过程,以及视频画面301的轴点更新过程。上述过程可通过电子设备中的视频编辑应用实现。
视频编辑应用在计算得到当前视频画面的第一临界缩放比例、回弹距离和第二临界缩放比例等调节参数后,视频编辑应用调用应用框架记录当前视频画面的调节参数,应用框架调用GPU,使得GPU基于这些调节参数发起视频画面的绘制过程,最终实现在电子设备的屏幕上显示调节后的视频画面。
图20为本申请实施例提供的一种电子设备的结构示意图。图20所示的电子设备100包括:存储器101、处理器110和通信接口102,其中,存储器101、处理器110、通信接口102可以通信;示例性的,存储器101、处理器110和通信接口102可以通过通信总线通信。
存储器101可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器101可以存储计算机程序,由处理器110来控制执行,并由通信接口102来执行通信,从而实现本申请上述实施例提供的视频处理方法。
芯片中的通信接口102可以为输入/输出接口、管脚或电路等。
本实施例的电子设备100对应地可用于执行上述方法实施例中执行的步骤,其实现原理和技术效果类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(digital subscriber line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (20)
1.一种视频处理方法,其特征在于,包括:
电子设备接收对视频裁剪界面内显示的视频画面的移动操作;所述移动操作包括旋转操作、缩放操作以及拖拽操作中的至少一者;
所述电子设备响应于所述移动操作,判断所述视频裁剪界面内的裁剪框是否全部位于所述视频画面内;
当所述裁剪框中存在位于所述视频画面之外的区域时,所述电子设备根据所述移动操作对应的调节参数对所述视频画面进行调节,使得所述裁剪框全部位于调节后的所述视频画面内;
其中,所述旋转操作对应的调节参数包括第一临界缩放比例,所述缩放操作对应的调节参数包括第二临界缩放比例,所述拖拽操作对应的调节参数包括回弹距离。
2.根据权利要求1所述的方法,其特征在于,所述电子设备接收对视频裁剪界面内显示的视频画面的移动操作,包括:
所述电子设备接收对所述视频裁剪界面中的第一旋转控件的触控操作;所述第一旋转控件用于在被触发时,根据所述触控操作对应的角度刻度值对所述视频画面进行旋转;
所述电子设备响应于所述移动操作,判断所述视频裁剪界面内的裁剪框是否全部位于所述视频画面内,包括:
所述电子设备响应于所述触控操作,获取旋转过程中的所述视频画面中的各个顶点的第一顶点坐标以及所述裁剪框中的各个顶点的第二顶点坐标;
所述电子设备根据所述第一顶点坐标和所述第二顶点坐标,计算所述视频画面的第一临界缩放比例;
所述电子设备根据所述第一临界缩放比例,以及旋转过程中的所述视频画面相对于原始视频画面的第一缩放比例,确定所述裁剪框是否全部位于旋转过程中的所述视频画面内;
所述当所述裁剪框中存在位于所述视频画面之外的区域时,所述电子设备根据所述移动操作对应的调节参数对所述视频画面进行调节,包括:
当所述裁剪框中存在位于旋转过程中的所述视频画面之外的区域时,所述电子设备按照所述第一临界缩放比例对旋转过程中的所述视频画面进行放大操作。
3.根据权利要求2所述的方法,其特征在于,所述电子设备根据所述第一临界缩放比例,以及旋转过程中的所述视频画面相对于原始视频画面的第一缩放比例,确定所述裁剪框是否全部位于旋转过程中的所述视频画面内,包括:
当所述第一临界缩放比例大于所述第一缩放比例时,所述电子设备确定所述裁剪框中存在位于旋转过程中的所述视频画面之外的区域;
当所述第一临界缩放比例小于或等于所述第一缩放比例时,所述电子设备确定所述裁剪框全部位于旋转过程中的所述视频画面内。
4.根据权利要求2所述的方法,其特征在于,所述电子设备根据所述第一顶点坐标和所述第二顶点坐标,计算所述视频画面的第一临界缩放比例,包括:
所述电子设备根据所述视频画面中的各个顶点的第一顶点坐标,计算得到所述视频画面中的每相邻两个顶点之间形成的第一连线;
所述电子设备根据所述裁剪框中的各个顶点的第二顶点坐标,计算得到所述裁剪框的中心点与所述裁剪框中的每个顶点之间形成的第二连线;
所述电子设备计算第一目标顶点对应的所述第一连线以及对应的所述第二连线之间形成的交点,得到所述第一目标顶点对应的目标交点;所述第一目标顶点为所述裁剪框中的任意一个顶点,所述第一目标顶点对应的第一连线为所述视频画面中与所述第一目标顶点距离最近的第一连线,所述第一目标顶点对应的第二连线为所述第一目标顶点与所述裁剪框的中心点之间形成的第二连线;
所述电子设备计算所述第一目标顶点与所述裁剪框的中心点之间的第一间距,以及所述目标交点与所述裁剪框的中心点之间的第二间距;
所述电子设备根据所述第一间距和所述第二间距,计算所述视频画面的第一临界缩放比例。
5.根据权利要求4所述的方法,其特征在于,所述电子设备根据所述第一间距和所述第二间距,计算所述视频画面的第一临界缩放比例,包括:
所述电子设备将所述第一间距与所述第二间距的比值,确定为所述第一目标顶点对应的目标比例值;
所述电子设备将所述裁剪框中的各个顶点对应的目标比例值中的最大值,确定为所述视频画面的第一临界缩放比例。
6.根据权利要求1所述的方法,其特征在于,所述电子设备响应于所述移动操作,判断所述视频裁剪界面内的裁剪框是否全部位于所述视频画面内;
所述电子设备响应于所述拖拽操作,获取拖拽后的所述视频画面中的各个顶点的第三顶点坐标以及所述裁剪框中的各个顶点的第四顶点坐标;
所述电子设备根据所述第三顶点坐标和所述第四顶点坐标,确定所述裁剪框是否全部位于拖拽后的所述视频画面内;
所述当所述裁剪框中存在位于所述视频画面之外的区域时,所述电子设备根据所述移动操作对应的调节参数对所述视频画面进行调节,包括:
当所述裁剪框中存在位于拖拽后的所述视频画面之外的区域时,所述电子设备按照所述回弹距离对拖拽后的所述视频画面进行回弹操作。
7.根据权利要求6所述的方法,其特征在于,所述电子设备根据所述第三顶点坐标和所述第四顶点坐标,确定所述裁剪框是否全部位于拖拽后的所述视频画面内,包括:
在所述视频画面的旋转角度不为0°且不是90°的整数倍的情况下,所述电子设备根据所述视频画面中的各个顶点的第三顶点坐标,计算得到所述视频画面中的每相邻两个顶点之间形成的第三连线;
所述电子设备计算所述裁剪框中的各个顶点至对应的所述第三连线的垂点坐标;
所述电子设备根据所述垂点坐标和所述第四顶点坐标,确定所述裁剪框是否全部位于拖拽后的所述视频画面内。
8.根据权利要求6所述的方法,其特征在于,在所述电子设备按照所述回弹距离对拖拽后的所述视频画面进行回弹操作之前,还包括:
在所述视频画面的旋转角度不为0°且不是90°的整数倍的情况下,所述电子设备确定拖拽后的所述视频画面中的各个顶点中,与所述裁剪框的中心点距离最近的第二目标顶点;
所述电子设备获取所述第二目标顶点对应的临界点的临界坐标;所述临界点与所述第二目标顶点的方位一致;
所述电子设备根据所述第二目标顶点对应的第三顶点坐标、所述临界点对应的临界坐标、第三目标顶点对应的第四顶点坐标,以及两个目标垂点对应的垂点坐标,确定所述裁剪框中位于拖拽后的所述视频画面之外的顶点数量是否大于1;所述第三目标顶点为所述裁剪框中与所述第二目标顶点方位一致的顶点,所述目标垂点为所述裁剪框中所述第二目标顶点对应的两个顶点,至所述视频画面中与所述第二目标顶点相邻的两条边界线上的垂点;
当所述裁剪框中的至少两个顶点位于拖拽后的所述视频画面之外时,所述电子设备将所述临界点与所述第二目标顶点之间的偏离距离,作为所述回弹距离。
9.根据权利要求8所述的方法,其特征在于,在所述电子设备根据所述第二目标顶点对应的第三顶点坐标、所述临界点对应的临界坐标、第三目标顶点对应的第四顶点坐标,以及两个目标垂点对应的垂点坐标,确定所述裁剪框中位于拖拽后的所述视频画面之外的顶点数量是否大于1之后,还包括:
当所述裁剪框中的一个顶点位于拖拽后的所述视频画面之外时,所述电子设备获取所述裁剪框中位于所述视频画面之外的第四目标顶点对应的第四顶点坐标;
所述电子设备将所述第四目标顶点对应的第四顶点坐标,与其对应的所述目标垂点的垂点坐标之间的偏离距离,作为所述回弹距离。
10.根据权利要求6所述的方法,其特征在于,在所述电子设备按照所述回弹距离对拖拽后的所述视频画面进行回弹操作之前,还包括:
在所述视频画面的旋转角度为0°或90°的整数倍的情况下,所述电子设备确定拖拽后的所述视频画面中的各个顶点中,与所述裁剪框的中心点距离最近的第五目标顶点;
所述电子设备根据所述裁剪框中与所述第五目标顶点方位一致的顶点对应的第四顶点坐标,以及所述第五目标顶点对应的第三顶点坐标,计算所述回弹距离。
11.根据权利要求1所述的方法,其特征在于,所述电子设备响应于所述移动操作,判断所述视频裁剪界面内的裁剪框是否全部位于所述视频画面内,包括:
所述电子设备响应于所述缩放操作,获取缩放后的所述视频画面相对于原始视频画面的第二缩放比例;
所述电子设备计算所述视频画面的第二临界缩放比例;
所述电子设备根据所述第二临界缩放比例和所述第二缩放比例,确定所述裁剪框是否全部位于缩放后的所述视频画面内;
所述当所述裁剪框中存在位于所述视频画面之外的区域时,所述电子设备根据所述移动操作对应的调节参数对所述视频画面进行调节,包括:
当所述裁剪框中存在位于缩放后的所述视频画面之外的区域时,所述电子设备按照所述第二临界缩放比例对缩放后的所述视频画面进行放大操作。
12.根据权利要求11所述的方法,其特征在于,所述电子设备根据所述第二临界缩放比例和所述第二缩放比例,确定所述裁剪框是否全部位于缩放后的所述视频画面内,包括:
当所述第二临界缩放比例大于所述第二缩放比例时,所述电子设备确定所述裁剪框中存在位于缩放后的所述视频画面之外的区域;
当所述第二临界缩放比例小于或等于所述第二缩放比例时,所述电子设备确定所述裁剪框全部位于缩放后的所述视频画面内。
13.根据权利要求11所述的方法,其特征在于,所述电子设备计算所述视频画面的第二临界缩放比例,包括:
在所述视频画面的旋转角度不为0°且不是90°的整数倍的情况下,所述电子设备根据所述裁剪框的宽度、所述裁剪框的高度以及所述视频画面在第一旋转控件触发下的旋转角度,计算得到所述视频画面的临界距离;
所述电子设备将所述临界距离与所述视频画面的原始尺寸的比值,确定为所述第二临界缩放比例;所述视频画面的原始尺寸为所述视频画面的原始宽度或所述视频画面的原始高度。
14.根据权利要求11所述的方法,其特征在于,所述电子设备计算所述视频画面的第二临界缩放比例,包括:
在所述视频画面的旋转角度为0°或90°的整数倍的情况下,所述电子设备将所述裁剪框的目标尺寸与所述视频画面的原始尺寸的比值,作为所述第二临界缩放比例;
其中,所述裁剪框的目标尺寸为所述裁剪框的高度,所述视频画面的原始尺寸为所述视频画面的原始高度;或者,所述裁剪框的目标尺寸为裁剪框的宽度,所述视频画面的原始尺寸为所述视频画面的原始宽度。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述视频画面的旋转角度不为0°且不是90°的整数倍的情况下,所述电子设备接收对所述裁剪框的拖拽操作;
所述电子设备响应于所述拖拽操作,获取所述视频画面中的各个顶点的第五顶点坐标;
所述电子设备根据所述视频画面中的各个顶点的第五顶点坐标,计算得到所述视频画面中的每相邻两个顶点之间形成的第四连线;
所述电子设备根据所述裁剪框中的四条边界线的延长线与所述第四连线之间形成的交点对应的交点坐标,计算所述裁剪框的拖拽边界;所述拖拽边界为所述裁剪框允许拖拽的最大范围对应的边界。
16.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对缩放后的所述视频画面进行拖拽操作后,所述电子设备获取拖拽后的所述视频画面的各个顶点的第六顶点坐标和所述视频画面的实际缩放比例;
所述电子设备根据所述第六顶点坐标和所述裁剪框的中心点,确定所述视频画面的第一轴点;
所述电子设备根据所述第一轴点在拖拽后的所述视频画面中的实际位置,确定所述视频画面在以所述实际缩放比例缩小后的视频画面中对应的第二轴点;所述视频画面是以原始轴点为缩放中心点进行缩小的;
所述电子设备计算所述第六顶点坐标,与所述视频画面在以所述实际缩放比例放大后的实际顶点坐标之间的偏离值;所述视频画面是以所述第二轴点为缩放中心点进行放大的;
所述电子设备根据所述偏离值更新所述视频画面的坐标。
17.根据权利要求16所述的方法,其特征在于,所述电子设备根据所述第六顶点坐标和所述裁剪框的中心点,确定所述视频画面的第一轴点,包括:
所述电子设备根据所述第六顶点坐标,计算得到拖拽后的所述视频画面的第五连线和第六连线;所述第五连线和所述第六连线为拖拽后的所述视频画面中相邻的两条边界线;
所述电子设备计算所述裁剪框的中心点至所述第五连线的第一轴点距离,以及所述裁剪框的中心点至所述第六连线的第二轴点距离;
所述电子设备采用所述第一轴点距离除以所述视频画面的实际宽度,再乘以所述视频画面的原始宽度,得到所述第一轴点的横坐标;
所述电子设备采用所述第二轴点距离除以所述视频画面的实际高度,再乘以所述视频画面的原始高度,得到所述第一轴点的纵坐标。
18.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行如权利要求1至17中任一项所述的视频处理方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1至17中任一项所述的视频处理方法。
20.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1至17中任一项所述的视频处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311400931.6A CN117692582A (zh) | 2022-05-30 | 2022-08-15 | 视频处理方法及电子设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210601435 | 2022-05-30 | ||
CN2022106014356 | 2022-05-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311400931.6A Division CN117692582A (zh) | 2022-05-30 | 2022-08-15 | 视频处理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116095249A true CN116095249A (zh) | 2023-05-09 |
CN116095249B CN116095249B (zh) | 2023-10-20 |
Family
ID=86205170
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311400931.6A Pending CN117692582A (zh) | 2022-05-30 | 2022-08-15 | 视频处理方法及电子设备 |
CN202210975830.0A Active CN116095249B (zh) | 2022-05-30 | 2022-08-15 | 视频处理方法及电子设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311400931.6A Pending CN117692582A (zh) | 2022-05-30 | 2022-08-15 | 视频处理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117692582A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665347A (zh) * | 2022-10-27 | 2023-01-31 | 上海幻电信息科技有限公司 | 视频裁剪方法、装置、电子设备及存储介质 |
CN117692582A (zh) * | 2022-05-30 | 2024-03-12 | 荣耀终端有限公司 | 视频处理方法及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000181915A (ja) * | 1998-12-16 | 2000-06-30 | Dainippon Printing Co Ltd | 画像割付装置 |
JP2004194168A (ja) * | 2002-12-13 | 2004-07-08 | Fuji Photo Film Co Ltd | トリミング処理装置及びトリミング処理プログラム |
JP2009060505A (ja) * | 2007-09-03 | 2009-03-19 | Seiko Epson Corp | 画像処理装置、画像処理方法、および、画像処理プログラム |
CN104461439A (zh) * | 2014-12-29 | 2015-03-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN105205780A (zh) * | 2015-10-19 | 2015-12-30 | 新华瑞德(北京)网络科技有限公司 | 图片裁剪方法和装置 |
CN109544453A (zh) * | 2018-11-16 | 2019-03-29 | 北京中竞鸽体育文化发展有限公司 | 图像调整方法及装置、电子设备、存储介质 |
CN111667487A (zh) * | 2020-04-29 | 2020-09-15 | 平安科技(深圳)有限公司 | 一种图片裁剪方法、装置及计算机设备 |
CN114302226A (zh) * | 2021-12-28 | 2022-04-08 | 北京中科大洋信息技术有限公司 | 一种视频画幅智能裁剪方法 |
JP2022069931A (ja) * | 2020-10-26 | 2022-05-12 | 株式会社Jvis | 自動トリミングプログラム、自動トリミング装置及び自動トリミング方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10101891B1 (en) * | 2015-03-27 | 2018-10-16 | Google Llc | Computer-assisted image cropping |
CN111275726B (zh) * | 2020-02-24 | 2021-02-05 | 北京字节跳动网络技术有限公司 | 图像裁剪方法、装置、设备及存储介质 |
CN111757177B (zh) * | 2020-06-17 | 2022-12-20 | 维沃移动通信有限公司 | 视频裁剪方法及装置 |
CN113628229B (zh) * | 2021-08-04 | 2022-12-09 | 展讯通信(上海)有限公司 | 图像裁剪方法及相关产品 |
CN117692582A (zh) * | 2022-05-30 | 2024-03-12 | 荣耀终端有限公司 | 视频处理方法及电子设备 |
-
2022
- 2022-08-15 CN CN202311400931.6A patent/CN117692582A/zh active Pending
- 2022-08-15 CN CN202210975830.0A patent/CN116095249B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000181915A (ja) * | 1998-12-16 | 2000-06-30 | Dainippon Printing Co Ltd | 画像割付装置 |
JP2004194168A (ja) * | 2002-12-13 | 2004-07-08 | Fuji Photo Film Co Ltd | トリミング処理装置及びトリミング処理プログラム |
JP2009060505A (ja) * | 2007-09-03 | 2009-03-19 | Seiko Epson Corp | 画像処理装置、画像処理方法、および、画像処理プログラム |
CN104461439A (zh) * | 2014-12-29 | 2015-03-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN105205780A (zh) * | 2015-10-19 | 2015-12-30 | 新华瑞德(北京)网络科技有限公司 | 图片裁剪方法和装置 |
CN109544453A (zh) * | 2018-11-16 | 2019-03-29 | 北京中竞鸽体育文化发展有限公司 | 图像调整方法及装置、电子设备、存储介质 |
CN111667487A (zh) * | 2020-04-29 | 2020-09-15 | 平安科技(深圳)有限公司 | 一种图片裁剪方法、装置及计算机设备 |
JP2022069931A (ja) * | 2020-10-26 | 2022-05-12 | 株式会社Jvis | 自動トリミングプログラム、自動トリミング装置及び自動トリミング方法 |
CN114302226A (zh) * | 2021-12-28 | 2022-04-08 | 北京中科大洋信息技术有限公司 | 一种视频画幅智能裁剪方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692582A (zh) * | 2022-05-30 | 2024-03-12 | 荣耀终端有限公司 | 视频处理方法及电子设备 |
CN115665347A (zh) * | 2022-10-27 | 2023-01-31 | 上海幻电信息科技有限公司 | 视频裁剪方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116095249B (zh) | 2023-10-20 |
CN117692582A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481096B2 (en) | Gesture mapping for image filter input parameters | |
US11706521B2 (en) | User interfaces for capturing and managing visual media | |
US11770601B2 (en) | User interfaces for capturing and managing visual media | |
CN116095249B (zh) | 视频处理方法及电子设备 | |
KR102256706B1 (ko) | 부드럽게 변화하는 포비티드 렌더링 | |
US9860448B2 (en) | Method and electronic device for stabilizing video | |
US10250800B2 (en) | Computing device having an interactive method for sharing events | |
RU2685031C1 (ru) | Стабилизация видеоряда | |
US9865033B1 (en) | Motion-based image views | |
CN110708596A (zh) | 生成视频的方法、装置、电子设备及可读存储介质 | |
US10049490B2 (en) | Generating virtual shadows for displayable elements | |
US20150215532A1 (en) | Panoramic image capture | |
KR20200123223A (ko) | 애플리케이션을 위한 디스플레이 적응 방법 및 장치, 디바이스, 및 저장 매체 | |
US10863077B2 (en) | Image photographing method, apparatus, and terminal | |
JP6337907B2 (ja) | 表示制御装置、表示制御方法およびプログラム | |
WO2021227693A1 (zh) | 拍摄方法、装置、移动终端及芯片系统 | |
WO2020069427A1 (en) | Panoramic light field capture, processing and display | |
US20140181709A1 (en) | Apparatus and method for using interaction history to manipulate content | |
WO2013144437A2 (en) | Method, apparatus and computer program product for generating panorama images | |
US20240080543A1 (en) | User interfaces for camera management | |
US8970483B2 (en) | Method and apparatus for determining input | |
CN110992268A (zh) | 背景设置方法、装置、终端及存储介质 | |
EP4080446A1 (en) | Cinematic image framing for wide field of view (fov) cameras | |
CN114327174A (zh) | 虚拟现实场景的显示方法、光标的三维显示方法和装置 | |
WO2021218118A1 (zh) | 图像处理方法及装置 |
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 |