1

几天来我一直在尝试解决这个问题,显然我无法进行仿射变换。

基本上,我想将电影多次旋转90 度。这里有一个很好的例子:

使用 AVMutableVideoCompositionLayerInstruction 旋转视频

但这仅适用于第一次旋转,而我想将它从纵向旋转到横向,回到纵向,再回到横向。

无论我尝试什么,我都会得到绝对奇怪的结果。不幸的是,即使经过大量阅读,我对仿射变换的理解显然也没有提高。

所以我基本上要求一个算法的布局,它将

  1. 将 AVMutableVideoComposition 的图层旋转 90 度,无论其当前方向如何。
  2. 应用平移以将图层移动到中心。

每次单击按钮时都应该调用它。

但是无论我尝试什么,图层都正确旋转,但是平移正在将图层移出中心。这样做的正确方法是什么?

4

1 回答 1

0

但是无论我尝试什么,图层都正确旋转,但是平移正在将图层移出中心。这样做的正确方法是什么?

正确的方法是使用 2 个变换:一个旋转,一个平移。在处理开始时,确保设置您的当前位置 - 通过在处理开始时分配当前变换。然后,创建两个独立的变换 - 一个用于旋转,另一个用于平移。您可以“合并”这两个转换以创建一个新的转换来执行这两种操作 - 但如果您希望转换能够“就地”运行,请务必在应用新转换之前重新设置原始转换。

于 2018-01-29T08:14:28.207 回答