* Copyright (c) Huawei Technologies Co., Ltd. 2017-2019. All rights reserved.
* Description: write Bmp picture
*/
#ifndef BITMAP_IMAGE_H
#define BITMAP_IMAGE_H
#include <cstdio>
#include <string>
enum BMPPixelType {
BMP_BGR = 0,
BMP_BGRA = 1,
BMP_RGB_565 = 2
};
struct __attribute__((packed)) TagBitMapInfoHeader {
uint32_t biSize = 0;
uint32_t biWidth = 0;
uint32_t biHeight = 0;
uint16_t biPlanes = 0;
uint16_t biBitCount = 0;
uint32_t biCompression = 0;
uint32_t biSizeImage = 0;
uint32_t biXPelsPerMeter = 0;
uint32_t biYPelsPerMeter = 0;
uint32_t biClrUsed = 0;
uint32_t biClrImportant = 0;
};
struct __attribute__((packed)) TagBitmapFileHeader {
uint16_t type = 0;
uint32_t size = 0;
uint16_t reserved1 = 0;
uint16_t reserved2 = 0;
uint32_t offBits = 0;
struct TagBitMapInfoHeader tagBitMapInfoHeader = {};
};
struct WriteBMPInfo {
uint32_t width = 0;
uint32_t height = 0;
BMPPixelType pixelType = BMP_BGR;
} __attribute__((packed));
bool WriteBMP(const std::string fileName, const std::string fileDir, const WriteBMPInfo &bitmapInfo,
std::pair<const uint8_t*, size_t> bitmapData);
#endif