//==============define header==============
unsigned char BITMAP_HEADER[] = {
0x42, 0x4D, 0xB6, 0x91, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0xAD, 0x00, 0x00, 0xEB, 0x0A, 0x00, 0x00, 0xEB, 0x0A, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
printf("Bitmap header size is %d\n", (int) sizeof(BITMAP_HEADER));
int file_size = (IMG_X_SIZE1*IMG_Y_SIZE1) * 3 + sizeof(BITMAP_HEADER);
// write byte 0 (LSB)
BITMAP_HEADER[FILE_SIZE_OFFSET+0] = (file_size >> 0) & 0xFF;
// write byte 1
BITMAP_HEADER[FILE_SIZE_OFFSET+1] = (file_size >> 8) & 0xFF;
// write byte 2
BITMAP_HEADER[FILE_SIZE_OFFSET+2] = (file_size >> 16) & 0xFF;
// write byte 3 (MSB)
BITMAP_HEADER[FILE_SIZE_OFFSET+3] = (file_size >> 24) & 0xFF;
printf("Bitmap file size: %02X %02X %02X %02X\n",
BITMAP_HEADER[FILE_SIZE_OFFSET+0],
BITMAP_HEADER[FILE_SIZE_OFFSET+1],
BITMAP_HEADER[FILE_SIZE_OFFSET+2],
BITMAP_HEADER[FILE_SIZE_OFFSET+3]
);
// write byte 0 (LSB)
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+0] = (unsigned char)((IMG_X_SIZE1 >> 0) & 0xFF);
// write byte 1
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+1] = (unsigned char)((IMG_X_SIZE1 >> 8) & 0xFF);
// write byte 2
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+2] = (unsigned char)((IMG_X_SIZE1 >> 16) & 0xFF);
// write byte 3 (MSB)
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+3] = (unsigned char)((IMG_X_SIZE1 >> 24) & 0xFF);
printf("Bitmap width: %02X %02X %02X %02X\n",
BITMAP_HEADER[PIXEL_WIDTH_OFFSET],
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+1],
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+2],
BITMAP_HEADER[PIXEL_WIDTH_OFFSET+3]
);