Странный эффект наложения при попытке добавить портретные изображения в ландшафтный PixelBufferIOS

Программируем под IOS
Ответить
Гость
 Странный эффект наложения при попытке добавить портретные изображения в ландшафтный PixelBuffer

Сообщение Гость »


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


Изображение


Вот код, используемый для создания образца CVBuffer для добавления в pixelBufferAdaptor:

класс FrameCreator { func create (из изображения: URL, PixelBufferPool: CVPixelBufferPool, размер: CGSize) -> CVBuffer? { let context = CIContext(mtlDevice: MTLCreateSystemDefaultDevice()!) context.clearCaches() вар PixelBuffer: CVPixelBuffer? // можно удалить предварительное условие (CVPixelBufferPoolCreatePixelBuffer (ноль, PixelBufferPool, &pixelBuffer) == kCVReturnSuccess) let ciImage = CIImage(contentsOf: image, options: [CIImageOption.applyOrientationProperty: true])! пусть imageSize = ciImage.extent.size если imageSize.height < imageSize.width { пусть HorizontalRatio = size.width/imageSize.width пустьвертикальныйRatio = size.height/imageSize.height пусть аспектРатио = макс (горизонтальноеСоотношение, вертикальноеСоотношение) let newSize = CGSize (ширина: imageSize.width * аспектRatio, высота: imageSize.height * аспектRatio) пусть x = newSize.width
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»