0
我從相機上使用AVCaptureVideoDataOutput
獲得的圖像。我檢查pixelBuffer在我captureOutput:如何從相機保存圖像以備後續處理?
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection {
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
如果我找到了我想要的pixelBuffer,那麼我想保存此圖像關閉後的圖像處理。
我看到三個選項,我想知道這是最好的使用方法:
- 我可以節省
sampleBuffer
或做它的一個副本 - 我可以節省
pixelBuffer
或做它 副本
- 我可以從
pixelBuffer
做一個CGImage
並保存,並在稍後當我需要做我的圖像處理時,我可以使用CGBitmapContextGetData()
找回一個位圖來操作。似乎在這裏有一堆不需要的副本,我可以不做。
哪一個是保存在位圖周圍稍後處理的首選方式?我不需要保存位圖的時間超過幾分鐘,即不需要保存到文件系統。如果答案是1或2,那麼我能不能保持緩衝器或我需要做一個malloc
和memcpy
複製呢?