|
|
|
/*
|
|
|
|
img_bmp.h - bmp format reference
|
|
|
|
Copyright (C) 2007 Uncle Mike
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
*/
|
|
|
|
#ifndef IMG_BMP_H
|
|
|
|
#define IMG_BMP_H
|
|
|
|
/*
|
|
|
|
========================================================================
|
|
|
|
|
|
|
|
.BMP image format
|
|
|
|
|
|
|
|
========================================================================
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define BI_FILE_HEADER_SIZE 14
|
|
|
|
#define BI_SIZE 40 // size of bitmap info header.
|
|
|
|
#if !defined(BI_RGB)
|
|
|
|
#define BI_RGB 0 // uncompressed RGB bitmap (defined in wingdi.h)
|
|
|
|
#define BI_RLE8 1
|
|
|
|
#define BI_RLE4 2
|
|
|
|
#define BI_BITFIELDS 3
|
|
|
|
#define BI_JPEG 4
|
|
|
|
#define BI_PNG 5
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#pragma pack( push, 1 )
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int8_t id[2]; // bmfh.bfType
|
|
|
|
uint32_t fileSize; // bmfh.bfSize
|
|
|
|
uint32_t reserved0; // bmfh.bfReserved1 + bmfh.bfReserved2
|
|
|
|
uint32_t bitmapDataOffset; // bmfh.bfOffBits
|
|
|
|
uint32_t bitmapHeaderSize; // bmih.biSize
|
|
|
|
int32_t width; // bmih.biWidth
|
|
|
|
int32_t height; // bmih.biHeight
|
|
|
|
uint16_t planes; // bmih.biPlanes
|
|
|
|
uint16_t bitsPerPixel; // bmih.biBitCount
|
|
|
|
uint32_t compression; // bmih.biCompression
|
|
|
|
uint32_t bitmapDataSize; // bmih.biSizeImage
|
|
|
|
uint32_t hRes; // bmih.biXPelsPerMeter
|
|
|
|
uint32_t vRes; // bmih.biYPelsPerMeter
|
|
|
|
uint32_t colors; // bmih.biClrUsed
|
|
|
|
uint32_t importantColors; // bmih.biClrImportant
|
|
|
|
} bmp_t;
|
|
|
|
#pragma pack( pop )
|
|
|
|
#endif // IMG_BMP_H
|
|
|
|
|