#include "Bitmap.h" #include #include Bitmap::Bitmap() { offset = 0; width = 0; height = 0; bpp = 0; } Bitmap::Bitmap(const std::string &file) { offset = 0; width = 0; height = 0; bpp = 0; load(file); } void Bitmap::load(const std::string &file) { std::ifstream stream; stream.open(file); if(stream.is_open()){ std::string str((std::istreambuf_iterator(stream)),std::istreambuf_iterator()); data.resize(str.size()); for(int i = 0; i < str.size();i++){ data[i] = str[i]; } offset = (int)*(unsigned int*)(&data[10]); width = (int)*(unsigned int*)(&data[18]); height = (int)*(unsigned int*)(&data[22]); bpp = (int)*(unsigned short*)(&data[28]); } } int Bitmap::getWidth() { return width; } int Bitmap::getHeight() { return height; } char *Bitmap::getData() { return &data[offset]; } int Bitmap::getBitsPerPixel() { return bpp; } unsigned int Bitmap::getPixel(int x, int y) { unsigned int pixel = 0; char *ptr = getData() + ((getHeight() - y) * getWidth() + x) * getBitsPerPixel() / 8; for(int i = 0; i < getBitsPerPixel() / 8;i++){ *((char*)&pixel+i) = ptr[i]; } if(pixel != 0){ return pixel; } return pixel; }