更新-我为回答这个问题添加了50点声望奖励!
我有一个应用程序,需要将一些视频和照片放在一起以从中创建电影。我为此使用AVMutableComposition。为了能够指示它如何构成视频,我必须使用AVMutableVideoComposition。这个东西有一个叫做backgroundColor
的属性,Apple Documentation说:
我从中了解到,有一种方法可以将alpha channel 添加到backgroundColor中,但我只是不了解如何。 If the rendered pixel buffer does not have alpha, the alpha value of the background color is ignored.
是什么意思?以及我如何添加这样的东西?
如果我只做myVideoCompositionInstruction.backgroundColor = [[UIColor colorWithWhite:1 alpha:0] CGColor];
,那将是行不通的-背景保持白色且不会变得透明。
任何帮助将不胜感激,谢谢!
最佳答案
在Apple的AVVideoCompositionInstruction
文档中,要设置的属性backgroundColor
的类型为CGColorRef
。
我的赌注是,因为您要使用 UIColor 设置backgroundColor
,然后才通过 CGColor 属性获取它的值,由于某种原因,alpha值不会传递到CGColorRef对象中。您知道会通过白色值,因为默认颜色是黑色。
UIColor有一些限制。我建议您阅读以下article。请特别注意本文的“UIColor的问题”一节。
我猜对于您的问题的最佳解决方案是直接使用 CGColor (例如,使用CGColorCreate)而不是UIColor来定义backgroundColor
。
关于iphone - 如何为AVVideoComposition设置透明背景?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6678743/