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

转: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设置为负值,使用时较为方便。

猜你喜欢

转载自blog.csdn.net/hanxiaoyong_/article/details/82018511