代码之家  ›  专栏  ›  技术社区  ›  Another Prog

MediaFoundation RGB数据和BMP之间到底有什么区别?

  •  0
  • Another Prog  · 技术社区  · 7 年前

    1 回复  |  直到 7 年前
        1
  •  1
  •   Roman Ryltsov    7 年前

    IMFMediaBuffer 附加到 IMFSample 。这只是位图位,没有特定于格式的元数据。您可以通过获取媒体缓冲区指针来访问此数据,例如通过执行以下操作 IMFSample::ConvertToContiguousBuffer 打电话,然后做 IMFMediaBuffer::Lock 获取像素数据指针。

    获得的缓冲区与标准.BMP文件中的数据兼容(除非有时行的顺序可能相反),它只是.BMP的文件在该数据之前有一个头。BMP文件通常具有 BITMAPFILEHEADER 结构,然后 BITMAPINFOHEADER 然后是缓冲区。如果你一个接一个地分别初始化它,这将产生一个有效的图片文件。 This other 这里的问题展示了如何从位图位创建.BMP文件。

    看见 this GitHub code snippet ,这非常接近请求的任务,可能是一个很好的起点。