如何将IMediaSample转换为位图

时间:2013-10-30 14:11:09

标签: c# bitmap directshow directshow.net

使用ISampleGrabberCB界面如何将SampleCB IMediaSample用于位图?

例如:

int ISampleGrabberCB.SampleCB( double SampleTime, IMediaSample pSample )
    {
        Bitmap frameBitmap = new Bitmap(pSample);
        return 0;
    }

1 个答案:

答案 0 :(得分:2)

没有媒体样本直接转换为位图。媒体样本是通过流管道传输的一段数据,可以是视频帧,未压缩和压缩,音频数据包,文件字节块等。显然,非视频媒体样本没有有意义的转换。

如果您的Sample Grabber设置为接受RGB数据(或巧合RGB),那么可能可以在此数据的基础上创建Bitmap对象,如果您提供的是正确的步幅(音高)和像素格式。否则,您将不得不执行其他格式转换。