我正在使用echo trim('date: march 27, 2017" to "march 27, 2017" "start: 12:30pm" to "12:30pm','date:');
//march 27, 2017" to "march 27, 2017" "start: 12:30pm" to "12:30pm
设置AVMutableVideoComposition
的可变组合生成GIF动画。问题在于核心动画工具,当它设置生成的图像时,右边有1列绿色像素。如果我不添加核心动画工具,它可以很好地工作。
生成的gif示例如下:
这就是我用图层创建AVVideoCompositionCoreAnimationTool
对象的方式。
AVVideoCompositionCoreAnimationTool
我发现如果我将视频图层的像素设置得更宽,以便绿色像素在屏幕外,它就可以工作。但这是肮脏的黑客。
let parentLayer = CALayer()
let videoLayer = CALayer()
let assetsLayer = self.assetsLayer!
assetsLayer.isGeometryFlipped = true
parentLayer.frame = CGRect(origin: CGPoint.zero, size: videoComposition.renderSize)
videoLayer.frame = CGRect(origin: CGPoint.zero, size: videoComposition.renderSize)
assetsLayer.frame = CGRect(origin: CGPoint.zero, size: videoComposition.renderSize)
parentLayer.addSublayer(videoLayer)
parentLayer.addSublayer(assetsLayer)
videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer)
有谁知道为什么我有绿柱,我做错了什么?
答案 0 :(得分:0)
我发现了问题所在。我指定渲染大小为AVMutableVideoComposition
,奇数值为宽度(375px)。看起来我只能使用偶数,因为渲染的视频宽度为376px,渲染器可能让我知道它增加了1个额外的列。奇怪的是,在wwdc视频和编程指南中都没有提及。