StretchDIBits功能将设备无关位图(DIB)中的像素矩形的颜色数据复制到指定的目标矩形。如果目标矩形大于源矩形,则该函数会拉伸颜色数据的行和列以适合目标矩形。如果目标矩形小于源矩形,则此函数使用指定的栅格操作来压缩行和列。
int StretchDIBits(
HDC 【HDC】, | //设备上下文的句柄 |
INT 【XDest】, | // dest的左上角的x坐标。RECT。 |
INT 【YDest】, | // dest的左上角的y坐标RECT。 |
INT 【nDestWidth】, | //目标矩形的宽度 |
INT 【nDestHeight】, | //目标矩形的高度 |
INT 【XSrc】, | //源代码左上角的x坐标。 |
INT 【YSrc】, | //源代码左上角的y坐标。 |
INT 【nSrcWidth】, | //源矩形的宽度 |
INT 【nSrcHeight】, | //源矩形的高度 |
CONST VOID *【LP位元ca】, | //位图位地址 |
CONST BITMAPINFO *【lpBitsInfo】, | //位图数据的地址 |
UINT 【iUsage】, | //用法 |
DWORD 【dwRop】 | //光栅操作码 |
); |
参数
【HDC】
标识目标设备上下文。
【XDest】
指定目标矩形左上角的x坐标(以逻辑为单位)。
【YDest】
指定目标矩形左上角的y坐标(以逻辑为单位)。
【nDestWidth】
指定目标矩形的逻辑单位宽度。
【nDestHeight】
指定目标矩形的高度(以逻辑为单位)。
【XSrc】
指定DIB中源矩形的x坐标(以像素为单位)。
【YSrc】
指定DIB中源矩形的y坐标(以像素为单位)。
【nSrcWidth】
指定DIB中源矩形的宽度(以像素为单位)。
【nSrcHeight】
指定DIB中源矩形的高度(以像素为单位)。
【LP位元ca】
指向DIB位,存储为字节数组。
【lpBitsInfo】
指向包含DIB信息的BITMAPINFO结构。
【iUsage】
指定是否提供BITMAPINFO结构的bmiColors成员,如果是,是否bmiColors包含明确的红色,绿色,蓝色(RGB)值或索引。【iUsage】参数必须是以下值之一:
值 | 描述 |
DIB_PAL_COLORS | 该数组包含16位索引到源设备上下文的逻辑调色板。 |
DIB_RGB_COLORS | 颜色表包含文字RGB值。 |
【dwRop】
指定源像素,目标设备上下文的当前画笔和目标像素如何组合以形成新图像。
返回值
如果功能成功,则返回值是复制的扫描行数。
如果函数失败,返回值为GDI_ERROR。要获取扩展错误信息,请调用GetLastError.
备注
自下而上的DIB的起源是左下角;自顶向下的DIB的原点是左上角。
如果【nSrcWidth】和【nDestWidth】参数或【nSrcHeight】和【nDestHeight】参数的符号不同,StretchDIBits会创建位图的镜像。如果【nSrcWidth】和【nDestWidth】具有不同的符号,则该函数将沿x轴创建位图的镜像。如果【nSrcHeight】和【nDestHeight】具有不同的符号,则该函数将沿y轴创建位图的镜像。
也可以看看