Subversion Repositories ipe_artfile_utils

Rev

Blame | Last modification | View Log | RSS feed

  1. #ifndef __inc__bitmap
  2. #define __inc__bitmap
  3.  
  4. #include <stdint.h>
  5.  
  6. // "BM"
  7. #define BI_SIGNATURE 0x4D42
  8.  
  9. // see https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
  10. #define BYTE uint8_t
  11. #define WORD uint16_t
  12. #define DWORD uint32_t
  13. #define LONG int32_t
  14.  
  15. // These parts were extracted from WinGDI.h and WinDef.h
  16.  
  17. #define BI_RGB 0
  18.  
  19. #pragma pack(push,2)
  20. typedef struct tagBITMAPFILEHEADER {
  21.         WORD    bfType;
  22.         DWORD   bfSize;
  23.         WORD    bfReserved1;
  24.         WORD    bfReserved2;
  25.         DWORD   bfOffBits;
  26. } BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
  27. #pragma pack(pop)
  28.  
  29. typedef struct tagBITMAPINFOHEADER{
  30.         DWORD   biSize;
  31.         LONG    biWidth;
  32.         LONG    biHeight;
  33.         WORD    biPlanes;
  34.         WORD    biBitCount;
  35.         DWORD   biCompression;
  36.         DWORD   biSizeImage;
  37.         LONG    biXPelsPerMeter;
  38.         LONG    biYPelsPerMeter;
  39.         DWORD   biClrUsed;
  40.         DWORD   biClrImportant;
  41. } BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
  42.  
  43. typedef struct tagRGBQUAD {
  44.         BYTE    rgbBlue;
  45.         BYTE    rgbGreen;
  46.         BYTE    rgbRed;
  47.         BYTE    rgbReserved;
  48. } RGBQUAD,*LPRGBQUAD;
  49.  
  50. #endif // #ifndef __inc__bitmap
  51.  
  52.