BITMAPINFOHEADER 的位数问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:34:32
今天从一个AVI文件中提取一张BMP图,用AVIStreamReadFormat()取得位图信息后发现bitmapinfoheader.biBitCount = 12。。。
而且biSizeImage = cx * cy * 1.5,

这个文件在装完一个插件后可以播放的,怎样把这幅图变换成一般格式的?

我没做过多媒体,下面是我的猜测:

是被压缩的BMP数据。
看看 biCompression 标记是什么,如果是规则压缩数据(每一位像素是由 R4G4B4 共12位组成),那也很好办的,直接再定义一个RGB24位的位图,一个像素一个像素的扩展(按位左移4位)拷贝就行了——要注意位图的行数据对齐是 4×n 字节。

如果这样不行,用directshow做把,在out render filter 处拦截可以得到标准位图。