簡體   English   中英

如何將CVPixelBuffer / CVImageBuffer轉換為數據?

[英]How do I convert a CVPixelBuffer / CVImageBuffer to Data?

我的相機應用程序會捕獲照片,以某種方式對其進行增強並保存。

為此,我以CVPixelBuffer的形式(包裝在CMSampleBuffer中)從攝像機獲取了輸入圖像。 我對像素緩沖區進行了一些修改,然后將其轉換為Data對象。 我該怎么做呢?

請注意,我不想將像素緩沖區/圖像緩沖區轉換為UIImage或CGImage,因為它們沒有元數據(如EXIF)。 我需要一個數據對象。 如何從CVPixelBuffer / CVImageBuffer中獲得一個?


PS:我嘗試調用AVCapturePhotoOutput.jpegPhotoDataRepresentation()但是失敗了,提示“不是JPEG樣本緩沖區”。 這很有意義,因為CMSampleBuffer包含像素緩沖區(位圖),而不是JPEG。

如您所說,您可以獲取CMSampleBuffer ,則可以使用來獲取它

NSData *myata = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:<your_cmsample_buffer_obj‌​>];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM