如何在CIImage中绘制文字?

时间:2018-03-01 11:34:25

标签: ios swift avassetwriter ciimage cvpixelbuffer

如何绘制到CIImage(或者可能进入CVPixelBuffer,但我想更容易将文字添加到CIImage)? 不是UIImage

我使用AVAssetWriterCMSampleBuffer(来自视频,音频输入)录制视频(.mp4文件)。在录制时我想在视频帧上添加文字,我已经将CMSampleBuffer转换为CIImage,现在我需要以某种方式将文字添加到CIImage并转换回CVPixelBuffer 。我没有在Swift中找到任何简单的例子如何向CIImage添加(绘制)文本或添加任何其他内容(如行,rects,而不仅仅是文本)。

/// encode video buffer
func appendVideoSampleBuffer(_ sampleBuffer: CMSampleBuffer) {

    // before encoding video frames into a file I would like process it
    // 1. convert CMSampleBuffer to ciImage

    let cvPixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!
    let ciimage : CIImage = CIImage(cvPixelBuffer: cvPixelBuffer)

    // 2. do something with CIImage


    // 3. convert CIImage back to CMSampleBuffer

    let sampleBufferWithText == ...


    appendSampleBuffer(sampleBufferWithText, ofMediaType: AVMediaType.video.rawValue)
}

/// encode audio buffer
func appendAudioSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
    appendSampleBuffer(sampleBuffer, ofMediaType: AVMediaType.audio.rawValue)
}

0 个答案:

没有答案