aboutsummaryrefslogtreecommitdiff
path: root/src/bitmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bitmap.h')
-rw-r--r--src/bitmap.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/bitmap.h b/src/bitmap.h
new file mode 100644
index 0000000..d222ffb
--- /dev/null
+++ b/src/bitmap.h
@@ -0,0 +1,70 @@
+#ifndef _BITMAP_H_
+#define _BITMAP_H_
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define _HEADER_SIZE 54 //Fileheader + infoheader
+#define IDENTIFIER 0x424d //BM BitMap identifier
+
+//Address Definitions
+#define BF_TYPE 0x00
+#define BF_SIZE 0x02
+#define BF_OFF_BITS 0x0a
+
+#define BI_SIZE 0x0e
+#define BI_WIDTH 0x12
+#define BI_HEIGHT 0x16
+#define BI_BIT_COUNT 0x1c
+#define BI_COMPRESSION 0x1e
+#define BI_SIZE_IMAGE 0x22
+#define BI_CLR_USED 0x2e
+#define BI_CLR_IMPORTANT 0x32
+
+#define R(x) (0xff0000 & x) >> 16
+#define G(x) (0x00ff00 & x) >> 8
+#define B(x) (0x0000ff & x)
+
+struct bitmap_file_header
+{
+ uint8_t error;
+
+ uint16_t bfType;
+ uint32_t bfSize;
+ uint32_t bfOffBits;
+
+ uint32_t biSize;
+ int32_t biWidth;
+ int32_t biHeight;
+ uint16_t biBitCount;
+ uint32_t biCompression;
+ uint32_t biSizeImage;
+ uint32_t biClrUsed;
+ uint32_t biClrImportant;
+
+ unsigned char *tables;
+ uint32_t tablesc;
+};
+
+struct bitmap_pixel_data
+{
+ unsigned int x,y;
+ uint8_t **R;
+ uint8_t **G;
+ uint8_t **B;
+
+ uint8_t error;
+};
+
+
+uint32_t bitmap_flip_byte(unsigned char* _v, int _c);
+
+struct bitmap_pixel_data bitmap_read(char *_file);
+
+struct bitmap_file_header bitmap_read_file_header(FILE *_file);
+
+struct bitmap_pixel_data bitmap_read_pixel_data(FILE *_file, struct bitmap_file_header _header);
+
+
+#endif /* end of include guard: _BITMAP_H_ */