Ios 如何将CVPixelBuffer/CVImageBuffer转换为数据?
我的相机应用程序捕捉照片,以某种方式增强它,然后保存它 为此,我以CVPixelBuffer(包装在CMSampleBuffer中)的形式从相机获取输入图像。我对像素缓冲区进行了一些修改,然后想将其转换为数据对象。我该怎么做 请注意,我不想将像素缓冲区/图像缓冲区转换为UIImage或CGImage,因为它们没有元数据(如EXIF)。我需要一个数据对象。如何从CVPixelBuffer/CVImageBuffer中获取一个Ios 如何将CVPixelBuffer/CVImageBuffer转换为数据?,ios,nsdata,exif,cvpixelbuffer,cmsamplebuffer,Ios,Nsdata,Exif,Cvpixelbuffer,Cmsamplebuffer,我的相机应用程序捕捉照片,以某种方式增强它,然后保存它 为此,我以CVPixelBuffer(包装在CMSampleBuffer中)的形式从相机获取输入图像。我对像素缓冲区进行了一些修改,然后想将其转换为数据对象。我该怎么做 请注意,我不想将像素缓冲区/图像缓冲区转换为UIImage或CGImage,因为它们没有元数据(如EXIF)。我需要一个数据对象。如何从CVPixelBuffer/CVImageBuffer中获取一个 PS:我试着调用AVCapturePhotoOutput.jpegPh
PS:我试着调用
AVCapturePhotoOutput.jpegPhotoDataRepresentation()
,但是说“不是JPEG样本缓冲区”失败了。这是有意义的,因为CMSampleBuffer包含一个像素缓冲区(位图),而不是JPEG。正如您所说,您可以获得CMSampleBuffer
,然后您可以使用
NSData *myata = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:<your_cmsample_buffer_obj>];
NSData*myata=[AVCaptureSillImageOutput jpegStillImageNSDataRepresentation:];
正如您所说,您可以获得CMSampleBuffer
,然后您可以使用
NSData *myata = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:<your_cmsample_buffer_obj>];
NSData*myata=[AVCaptureSillImageOutput jpegStillImageNSDataRepresentation:];
AVCaptureStillImageOutput
在您编写此答案时已被弃用。AVCaptureStillImageOutput
在您编写此答案时已被弃用。