BMP has a bottom left origin ...
BMP has the origin at the TOP left ...
Bitmap can have TOP-left origin as well as BOTTOM-left origin. Width and Height fields in the BMP header should be signed integers not unsigned. Then if Height is positive BMP is bottom-up and when Height is negative then BMP is considered top-down.

Quote Originally Posted by MSDN
biHeight -
Specifies the height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper-left corner.
If biHeight is negative, indicating a top-down DIB, biCompression must be either BI_RGB or BI_BITFIELDS. Top-down DIBs cannot be compressed.