0
我從可變構圖生成動畫gif,其中我將AVMutableVideoComposition
設置爲AVVideoCompositionCoreAnimationTool
。核心動畫工具的問題是,當它設置生成的圖像在右邊有1列綠色像素。如果我不添加核心動畫工具,它完美的作品。生成的gif的AVAssetImageGenerator使用動畫工具和視頻合成生成具有綠色像素的圖像
實施例是在這裏:
這是我如何創建與層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)
我發現,如果我做視頻層2個像素寬,使綠色像素在屏幕外,將工作。但它是骯髒的黑客。
videoLayer.frame = CGRect(origin: CGPoint.zero, size: videoComposition.renderSize).insetBy(dx: -2, dy: -2)
有誰知道我爲什麼有綠柱,我做錯了什麼?