0

在試圖瞭解如何將mediafoundation rgb32數據轉換爲可載入圖像/位圖小部件或保存爲位圖文件的位圖數據時,我想知道RGB32數據實際上與BMP數據相比?MediaFoundation RGB數據和BMP之間的區別究竟是什麼?

它是否僅僅缺少標題信息或者位圖文件像寬度,高度等的關鍵信息?

與位圖文件或存儲流中的BMP數據相比,RGB32實際上意味着什麼?

回答

1

通常情況下,您將32位RGB作爲IMFMediaBuffer附加到IMFSample。這只是位圖位,沒有格式特定的元數據。您可以通過獲取媒體緩衝區指針訪問此數據,例如,通過調用IMFSample::ConvertToContiguousBuffer,然後執行IMFMediaBuffer::Lock來獲取像素數據指針。

獲得的緩衝區與標準.BMP文件中的數據兼容(除了可能,有些時候,行可能是相反的順序),它只是.BMP文件在此數據之前有一個標題。 .BMP文件通常有BITMAPFILEHEADER結構,然後BITMAPINFOHEADER然後是有問題的緩衝區。如果你分別一個接一個地寫入它,這會產生一個有效的圖片文件。 Thisother這裏的問題顯示了從位圖位創建.BMP文件的方法。

請參閱this GitHub code snippet,它非常接近所要求的任務,可能是一個很好的起點。

相關問題