Я масштабирую композицию 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
, это кажется идеальным.Но я не понимаю, почему.
Есть идеи?или лучший способ масштабирования и центрирования?
Спасибо