GitOS
Operating system exercise
Loading...
Searching...
No Matches
BMPFile.hpp
Go to the documentation of this file.
1//
2// Created by root on 2/12/25.
3//
5#pragma once
6#include <stdint-gcc.h>
8class BMPFile {
9 public:
10 BMPFile(uint8_t* data, uint32_t sz);
11 bool has_color_table() const;
12 const uint32_t* get_raster() const;
13
14 uint32_t get_pixel(uint32_t x, uint32_t y) const;
15 uint32_t get_width() const;
16 uint32_t get_height() const;
17
18 private:
19 struct BITMAPFILEHEADER {
20 char signature[2];
21 uint32_t file_size;
22 uint32_t reserved;
23 uint32_t offset;
24 } __attribute__((__packed__));
25 struct BITMAPINFOHEADER {
26 uint32_t size;
27 uint32_t width;
28 uint32_t height;
29 uint16_t planes;
30 uint16_t bit_count;
31 uint32_t compression;
32 uint32_t image_size;
33 uint32_t x_pixels_per_meter;
34 uint32_t y_pixels_per_meter;
35 uint32_t colors_used;
36 uint32_t colors_important;
37 } __attribute__((__packed__));
38
39
40 const BITMAPFILEHEADER* m_file_header;
41 const BITMAPINFOHEADER* m_info_header;
42 const uint32_t* m_color_table;
43 const uint32_t* m_raster_data;
44};
uint32_t x_pixels_per_meter
Definition BMPFile.hpp:7
uint32_t width
Definition BMPFile.hpp:1
uint32_t image_size
Definition BMPFile.hpp:6
uint32_t height
Definition BMPFile.hpp:2
uint32_t colors_important
Definition BMPFile.hpp:10
uint16_t bit_count
Definition BMPFile.hpp:4
uint32_t offset
Definition BMPFile.hpp:3
uint32_t compression
Definition BMPFile.hpp:5
uint32_t y_pixels_per_meter
Definition BMPFile.hpp:8
uint32_t file_size
Definition BMPFile.hpp:1
uint32_t colors_used
Definition BMPFile.hpp:9
uint8_t planes
Definition GitBoot.hpp:6
Definition BMPFile.hpp:8
bool has_color_table() const
Definition BMPFile.cpp:50
const uint32_t * get_raster() const
Definition BMPFile.cpp:54
uint32_t get_width() const
Definition BMPFile.cpp:85
uint32_t get_pixel(uint32_t x, uint32_t y) const
Definition BMPFile.cpp:58
uint32_t get_height() const
Definition BMPFile.cpp:89
struct fat_directory __attribute__
uint8_t reserved
Definition fat16.h:3
uint8_t signature
Definition fat16.h:2
uint16_t size
Definition gdt.h:0
uint8_t * data
Definition window.h:0