视频和图像函数

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

这些函数和宏操作 DirectShow 视频格式结构。

函数 说明
BIT_MASKS_MATCH 比较两个 VIDEOINFO 结构的颜色掩码。
BITMASKS VIDEOINFO 结构检索颜色掩码
CheckVideoInfoType 检查包含 VIDEOINFOHEADER 格式结构的媒体类型,查找可能导致缓冲区溢出或整数溢出的错误。
CheckVideoInfo2Type 检查包含 VIDEOINFOHEADER2 格式结构的媒体类型,查找可能导致缓冲区溢出或整数溢出的错误。
颜色 VIDEOINFO 结构检索调色板条目
ContainsPalette 确定指定的 VIDEOINFOHEADER 结构是否包含调色板。
ConvertVideoInfoToVideoInfo2 将使用 VIDEOINFOHEADER 的媒体类型转换为使用 VIDEOINFOHEADER2 的媒体类型
DIBSIZE 计算与设备无关的位图 (DIB) 所需的字节数。
GetBitCount 返回指定视频子类型使用的每像素的位数。
GetBitmapFormatSize 计算可以容纳指定 BITMAPINFOHEADER 结构的 VIDEOINFO 结构所需的大小。
GetBitmapPalette 返回 VIDEOINFOHEADER 结构中的第一个调色板条目。
GetBitmapSize 计算与设备无关的位图 (DIB) 所需的字节数。
GetBitmapSubtype 返回指定位图的媒体子类型 GUID
GetSubtypeName 检索视频子类型的人类可读名称。
GetTrueColorType 返回 16 位未压缩 RGB 位图的媒体子类型 GUID
返回 VIDEOINFOHEADERBITMAPINFOHEADER 的地址。
MPEG1_SEQUENCE_INFO 返回 MPEG1VIDEOINFO 结构中的序列标头的地址。
PALETTISED 检查位图的颜色深度是否为 8 位或更少。
PALETTE_ENTRIES 检索指定位图调色板中的最大颜色数。
RESET_MASKS 使用零填充 VIDEOINFO 结构中的颜色掩码字段。
RESET_HEADER 用零填充 VIDEOINFOHEADER
RESET_PALETTE 使用零填充 VIDEOINFO 结构中的调色板条目。
SIZE_EGA_PALETTE 计算 4 位 RGB 位图中调色板条目所需的大小。
SIZE_MASKS 计算 VIDEOINFO 结构中颜色掩码的大小。
SIZE_MPEG1VIDEOINFO 计算 MPEG1VIDEOINFO 结构(包括序列标头)的大小。
SIZE_PALETTE 计算 VIDEOINFO 结构中调色板条目的大小。
SIZE_PREHEADER 计算 VIDEOINFOHEADER 结构中 bmiHeader 字段的字节偏移量。
SIZE_VIDEOHEADER 计算 VIDEOINFOHEADER 结构的大小。
TRUECOLOR VIDEOINFO 结构返回 TRUECOLORINFO 结构。
ValidateBitmapInfoHeader 检查 BITMAPINFOHEADER 结构中是否存在可能导致缓冲区溢出或整数溢出的错误。

 

备注

本节中介绍的大多数宏和函数都是为操作 RGB 位图的 VIDEOINFOHEADERVIDEOINFO 结构而设计的。 请谨慎使用这些宏:其中大多数宏假定已正确初始化指定的结构。 其中许多还假定 BITMAPINFOHEADER 结构是标准大小; biSize == sizeof(BITMAPINFOHEADER)即 。

DirectShow 基类库还提供以下全局常量,用于定义真彩色位图的标准颜色掩码。

全局数据 说明
bits555 5-5-5 格式的 16 位 RGB 位图的颜色掩码数组。
bits565 5-6-5 格式的 16 位 RGB 位图的颜色掩码数组。
bits888 24 位 RGB 位图的颜色掩码数组。

 

这些常量在三个 DWORD的数组中,每个常量都按该顺序包含红色、绿色和蓝色掩码。