Swift AVMutableVideoСоставление масштаба и вычисление центра - PullRequest
0 голосов
/ 20 сентября 2018

Я масштабирую композицию AVMutableVideoComposition, чтобы она соответствовала моему полноэкранному виду.

Когда я делаю это, он масштабируется из нижнего левого угла, поэтому я пытаюсь отцентрировать его.вот мой код ...

let scale = max(videoViewBounds.width/source.extent.size.width, videoViewBounds.height/source.extent.size.height)
        let screenScale = UIScreen.main.scale

        let translateX = (source.extent.size.width * scale) - videoViewBounds.width
        let translateY = (source.extent.size.height * scale) - videoViewBounds.height
        print("X: ", translateX)
        print("Y: ", translateY)

        let sourceTransform = CGAffineTransform.init(scaleX: scale * screenScale, y: scale * screenScale).translatedBy(x: -translateX/2, y: -translateY/2)

        overlayFilter.setValue(source.transformed(by: sourceTransform), forKey: kCIInputBackgroundImageKey)

Это дает мне результат, очень близкий к тому, что я хочу, но он все же немного отличается.если я поменяю

-translate/2 to -translate/1.5

, это кажется идеальным.Но я не понимаю, почему.

Есть идеи?или лучший способ масштабирования и центрирования?

Спасибо

...