1

我的相机应用程序捕捉照片,以某种方式增强并保存它。

为此,我以 CVPixelBuffer(包装在 CMSampleBuffer 中)的形式从相机获取输入图像。我对像素缓冲区进行了一些修改,然后我想将其转换为 Data 对象。我该怎么做呢?

请注意,我不想将像素缓冲区/图像缓冲区转换为 UIImage 或 CGImage,因为它们没有元数据(如 EXIF)。我需要一个数据对象。如何从 CVPixelBuffer / CVImageBuffer 中获取一个?


PS:我试过打电话AVCapturePhotoOutput.jpegPhotoDataRepresentation(),但没有说“不是JPEG样本缓冲区”。这是有道理的,因为 CMSampleBuffer 包含一个像素缓冲区(位图),而不是 JPEG。

4

1 回答 1

0

正如你所说,你能够得到CMSampleBuffer,那么你可以得到它使用

NSData *myata = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:<your_cmsample_buffer_obj‌​&gt;];
于 2017-07-11T15:59:52.547 回答