StretchDIBits函数隐含的图像坐标系设置

函数原型:
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 则图像原点在左下角
bmiHeader.biHeight = -512 则图像原点在左上角
由于通常图像处理中使用的坐标系坐标原点在图像左上角,所以,通常要将bmiHeader.biHeight设置为负值,使用时较为方便。

你可能感兴趣的:(StretchDIB,图像坐标系,位图头信息)