StretchDIB 函数 (vfw.h)

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

源矩形的高度(以像素为单位)。

返回值

备注

目标缓冲区的大小必须足够大,才能容纳每个像素行末尾的任何对齐字节。

如果 biSrcbiDst 具有不同的 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