转:https://blog.csdn.net/bflong/article/details/47298997
函数原型:
int StretchDIBits(HDC hdc,int XDest,int YDest,int nDestWidth,int nDestHeight,int XSrc,int Ysrc,int nSrcWidth,int nSrcHeight,CONST VOID lpBits,CONST BITMAPINFO lpBitsInfo,UINT iUsage,DWORD dwRop);
参数:
hdc:指向目标设备环境的句柄
.XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标
.YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标
.nDestWidth :指定目标矩形的宽度
.nDestHeight:指定目标矩形的高度
.XSrc:指定DIB中源矩形(左上角)的X轴坐标,坐标以像素点表示
.YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示.nSrcWidth
:按像素点指定DIB中源矩形的宽度
.nSrcHeight:按像素点指定DIB中源矩形的高度
.lpBits:指向DIB位的指针,这些位的值按字节类型数组存储,有关更多的信息,参考下面的备注一节。
lpBitsInfo:指向BITMAPINFO结构的指针,该结构包含有关DIB方面的信息。
iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了,那么该bmiColors是否包含了明确的RGB值或索引。
BITMAPINFO结构具有如下形式:
typedef struct tagBITMAPINFO
{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors [1];
} BITMAPINFO;
其中bmiHeader.biHeight表示图像的高度,但是它可以负值,例如:如果图像大小为512 * 512,那么
bmiHeader.biHeight = 512则图像原点在左下角 ; 自底向上的DIB的起始点为左下角,
bmiHeader.biHeight = -512则图像原点在左上角 ; 自顶向下DIB的起始点为左上角。
由于通常图像处理中使用的坐标系坐标原点在图像左上角,所以,通常要将bmiHeader.biHeight设置为负值,使用时较为方便。