SetDIBitsToDevice(二) —— BITMAPINFOHEADER中的biHeight为负值

biHeight为负值时,DIB位图会以上下翻转的方式绘制,不同于biHeight为正值的参数意义如下:

【1】cLines表示lpvBits中包含的行数,大于能取得的最大值时,图像无法显示。
                          SetDIBitsToDevice(二) —— BITMAPINFOHEADER中的biHeight为负值
                                                                        图1 cLines参数无效情况举例

【2】StartScan确定的图像坐标系如下
SetDIBitsToDevice(二) —— BITMAPINFOHEADER中的biHeight为负值
                 StartScan >0                                              StartScan < 0                                               StartScan = 0

【3】xSrc、ySrc、w、h:在StartScan确定的坐标系下指定要显示的图像区域。
                                                           SetDIBitsToDevice(二) —— BITMAPINFOHEADER中的biHeight为负值
 

最终显示图像大小为w x h,有像素数据部分为红框部分,超出红框部分为空白,最终显示时由于biHeight为负值,图像会上下翻转