#pragma pack (push ,1)
typedef struct { /* bmfh */
uint16_t bfType;
uint32_t bfSize;
uint16_t bfReserved1;
uint16_t bfReserved2;
uint32_t bfOffBits;
} BMP_FILE_HDR;
typedef struct { /* bmih */
uint32_t biSize;
uint32_t biWidth;
uint32_t biHeight;
uint16_t biPlanes;
uint16_t biBitCount;
uint32_t biCompression;
uint32_t biSizeImage;
uint32_t biXPelsPerMeter;
uint32_t biYPelsPerMeter;
uint32_t biClrUsed;
uint32_t biClrImportant;
} BMP_INFO_HDR;
#pragma pack (pop)
//src 原数据
//fmt 原数据格式
//len 获取返回的bmp数据大小
//reverse 是否需要将图片反转
//返回值 指向bmp数据,使用完需要free
uint8_t *create_bmp(uint8_t *src, enum PixelFormat fmt, int width, int height, int *len, bool reverse)