图层旋转:CGAffineTranslate、CGAffineRotel和AVMutableVideoCompositi



几天来,我一直在努力解决这个问题,显然我无法获得仿射变换。

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

旋转视频w/AVMutatibleVideoCompositionLayerInstruction

但这只适用于第一次旋转,而我想把它从肖像旋转到风景,回到肖像,回到风景。

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

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

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

每次单击按钮时都应该调用此函数。

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

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

正确的方法是使用两个变换:一个用于旋转,一个用于平移。处理开始时,通过在处理开始时指定当前变换,确保已设置当前位置。然后,创建两个独立的变换——一个用于旋转,另一个用于平移。您可以"连接"这两个转换以创建一个同时执行这两个操作的新转换,但如果您希望转换"原位"运行,请确保在应用新转换之前重新设置原始转换。

最新更新