Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将CVPixelBuffer/CVImageBuffer转换为数据?_Ios_Nsdata_Exif_Cvpixelbuffer_Cmsamplebuffer - Fatal编程技术网

Ios 如何将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

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

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

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



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
在您编写此答案时已被弃用。