Я пытаюсь записать видео с некоторым наложением текста с использованием библиотеки GPUImage. Запись с наложением работает до сих пор, но я не могу добиться, чтобы наложение имело нужный размер. Независимо от того, какой кадр я использую при инициализации, наложение сверху всегда занимает весь размер слоя предварительного просмотра (GPUImageView). Я попытался добавить наложение как в раскадровку, так и программно. Вот мой код:Размер наложения GPUImageUIElement
camera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPresetHigh, cameraPosition: AVCaptureDevicePosition.Back)
camera.outputImageOrientation = UIInterfaceOrientation.LandscapeRight
camera.horizontallyMirrorFrontFacingCamera = false
camera.horizontallyMirrorRearFacingCamera = false
filterView = self.view as! GPUImageView
filter = GPUImageBrightnessFilter()
blendFilter = GPUImageAlphaBlendFilter()
blendFilter.mix = 1.0
camera.addTarget(filter)
// here I try to add a label as UIElement
let label = UILabel(frame: CGRect(x: 10, y: 10, width: 100, height: 30))
label.text = "Demo text"
label.textColor = UIColor.redColor()
label.font = UIFont.systemFontOfSize(17.0)
label.backgroundColor = UIColor.clearColor()
view.addSubview(label) // for test purposes
uiElementInput = GPUImageUIElement(view: label)
filter.addTarget(blendFilter)
uiElementInput.addTarget(blendFilter)
blendFilter.addTarget(filterView)
filter.frameProcessingCompletionBlock = { filter, time in
self.uiElementInput.update()
}
camera.startCameraCapture()
Как я могу получить UIElement иметь меньший размер, как на этикетке как часть зрения? Идея состоит в том, чтобы добавить предопределенный вид наложения (а не только метку), но он также имеет неправильные размеры.
Спасибо!
Или вы можете использовать GPUImageTransformFilter! – BurtK
Благодарим вас за ваш повтор! Я, наконец, также понял, что мне нужно установить одинаковый размер для метки в качестве предустановленных размеров. После этого я попытался с subview, который я создал в раскадровке. Поэтому мне пришлось добавить пустой вид с размером, равным моему UIScreen.mainScreen(). Bounds.size, а затем добавить созданный вид к этому представлению-заполнителю. После этих манипуляций я наконец получил правильные размеры для подсмотра. –
@AndreyGershengoren Отлично! – BurtK