我正在使用AVFoundation使用captureStillImageAsynchronouslyFromConnection從相機捕獲靜止圖像(捕獲靜止圖像而不是視頻幀)。這給了我一個CMSSampleBuffer類型的緩衝區,我調用了imageDataSampleBuffer。從相機獲取yuv平面格式圖像 - iOS
據我所知,這個緩衝區可以包含與媒體有關的任何類型的數據,並且當我配置輸出設置時確定數據的類型。
輸出設置,我做一個字典的值爲AVVideoCodecJPEG鍵:AVVideoCOdecKey。
沒有其他編解碼器選項。但是當我閱讀AVFoundation編程指南>媒體捕捉時,我可以看到420f,420v,BGRA,jpeg是iPhone 3gs支持的可用編碼格式(我正在使用的)
我想獲得yuv420 420v)格式化圖像數據到imageSampleBuffer中。那可能嗎?
如果我打印availableImageDataCodecTypes,我只得到JPEG 如果我打印availableImageDataCVPixelFormatTypes,我得到三個號碼875704422,875704438,1111970369.
難道這三個數字地圖,420F,420V,BGRA?
如果是,我應該在輸出設置中修改哪個鍵? 我試着把值:[NSNumber numberWithInt:875704438]鍵:(id)kCVPixelBufferPixelFormatTypeKey。 它會工作嗎?
如果是,我該如何從imageSampleBuffer中提取這些數據?
此外,在UIImage存儲的格式?它可以是任何格式?它只是NSData與一些額外的信息,這使得它解釋爲一個圖像?