2017-03-15 3 views
0

Ich erstelle ein animiertes GIF aus einer veränderbaren Komposition, in der ich AVMutableVideoComposition mit AVVideoCompositionCoreAnimationTool einstelle. Problem ist mit Core-Animation-Tool, wenn es festgelegt ist, dass generierte Bilder 1 Spalte von grünen Pixeln auf der rechten Seite haben. Wenn ich kein Kernanimationstool hinzufüge, funktioniert es perfekt.AVAssetImageGenerator Generieren von Bildern mit grünen Pixeln mit Animationstool und Videozusammenstellung

Beispiel erzeugt gif ist hier:

enter image description here

Dies ist, wie ich AVVideoCompositionCoreAnimationTool Objekt mit Schichten erschaffe.

Ich fand heraus, dass, wenn ich Videoschicht 2 Pixel breiter mache, so dass grüne Pixel außerhalb des Bildschirms sind, wird es funktionieren. Aber es ist schmutziger Hack.

videoLayer.frame = CGRect(origin: CGPoint.zero, size: videoComposition.renderSize).insetBy(dx: -2, dy: -2) 

Weiß jemand, warum ich grüne Spalte habe und was mache ich falsch?

Antwort

0

Ich habe herausgefunden, was das Problem war. Ich habe Rendergröße von AVMutableVideoComposition mit ungeradem Wert der Breite (375px) spezifiziert. Es sieht so aus, als ob ich nur gerade Zahlen verwenden muss, weil das gerenderte Video 376 Pixel breit ist und der Renderer mir wahrscheinlich mitgeteilt hat, dass es eine zusätzliche Spalte hinzugefügt hat. Seltsam, dass das weder in wwdc Videos noch in der Programmieranleitung erwähnt wird.

Verwandte Themen