bool BMP::read8bits() { std::ifstream imageFile(_pathname.c_str(),std::ios::binary); //Palette recuperation imageFile.seekg(_offsetImage-1024,std::ios::beg); unsigned char red,green,blue,alpha,color; RGBA* rgba; for(int i=0;i<256;i++) { rgba = new RGBA(); imageFile.read((char*)&red,sizeof(char)); imageFile.read((char*)&green,sizeof(char)); imageFile.read((char*)&blue,sizeof(char)); imageFile.read((char*)&alpha,sizeof(char)); rgba->setRed(red); rgba->setGreen(green); rgba->setBlue(blue); rgba->setAlpha(alpha); this->palette.push_back(rgba); _correspondancepixelPalette[red][green][blue][alpha]=i; } imageFile.seekg(_offsetImage,std::ios::beg); //pixel recuperation //Initialisation array first to reverse to order : 0,0 means top left this->pixel.resize(this->getHeightImage()); for(int i=0;i<this->getHeightImage();i++) { this->pixel[i].resize(this->getWidthImage()); } for(int i=this->getHeightImage()-1;i>=0;i--) { for(int j=0;j<this->getWidthImage();j++) { imageFile.read((char*)&color,sizeof(char)); this->pixel[i][j]=new RGBA(this->palette[color]); } } imageFile.close(); return false; }