StretchDIB 函数将独立于设备的位图从一个内存位置复制到另一个内存位置,并调整图像大小以适应目标矩形。
语法
void StretchDIB(
LPBITMAPINFOHEADER biDst,
LPVOID lpDst,
int DstX,
int DstY,
int DstXE,
int DstYE,
LPBITMAPINFOHEADER biSrc,
LPVOID lpSrc,
int SrcX,
int SrcY,
int SrcXE,
int SrcYE
);
参数
biDst
指向描述目标位图的 BITMAPINFOHEADER 结构的指针。
lpDst
指向将接收复制像素位的内存缓冲区的指针。
DstX
目标矩形原点的 X 坐标。
DstY
目标矩形原点的 Y 坐标。
DstXE
目标矩形的宽度(以像素为单位)。
DstYE
目标矩形的高度(以像素为单位)。
biSrc
指向描述源位图的 BITMAPINFOHEADER 结构的指针。
lpSrc
指向源位图数据的指针。
SrcX
源矩形原点的 X 坐标。
SrcY
源矩形原点的 Y 坐标。
SrcXE
源矩形的宽度(以像素为单位)。
SrcYE
源矩形的高度(以像素为单位)。
返回值
无
备注
目标缓冲区的大小必须足够大,才能容纳每个像素行末尾的任何对齐字节。
如果 biSrc 和 biDst 具有不同的 biBitCount 值或 biSrc 的值,则此函数不执行任何操作。 biBitCount 不等于 8、16 或 24。
此函数不执行抖差或其他平滑处理。 像素值只是逐行、逐列删除或复制。
此函数不基于像素编码执行任何特殊处理,但计算每像素的位数除外。 具体而言,当以超过 1 像素的组对像素进行编码时,此函数不会生成正确的结果,例如,在 YUV 格式中,你和 V 被截除,因此在每个像素中表示不相等。
在包含 Vfw.h 之前,必须将以下行添加到代码中:
#define DRAWDIB_INCLUDE_STRETCHDIB
要求
| 最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
| 最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
| 目标平台 | Windows |
| 标头 | vfw.h |
| Library | Vfw32.lib |
| DLL | Msvfw32.dll |