A program a renderelt képet bmp fájltípusba fogja menteni. A fájltípus részletes leírását megtaláltam a hu.wikipedia.org/wiki/BMP oldalon. A program mindössze annyit tesz, hogy filestream segítségével kiírja a bmp headerjét majd magát a képet. 24 bites képpel dolgozom, 640*480 -as felbontásban. Kicsit összecsapott a program ezen része. Később jelentősen át kell alakítani.
// bmp.h class c_bmp { public: void saveas(std::vector<char>& pixel); private: };
// bmp.cpp int bmp_header(std::ofstream& oFile) { int s = 640*480+54; int id; oFile << "BM"; //BM oFile.write((char*)&s,4); // file size oFile << "ZRay"; id = 54; oFile.write((char*)&id,4); id = 40; oFile.write((char*)&id,4); id = 640; oFile.write((char*)&id,4); id = 480; oFile.write((char*)&id,4); id = 1; oFile.write((char*)&id,2); id = 24; oFile.write((char*)&id,2); id = 0; oFile.write((char*)&id,4); oFile.write((char*)&id,4); id = 2835; oFile.write((char*)&id,4); oFile.write((char*)&id,4); id = 0; oFile.write((char*)&id,4); oFile.write((char*)&id,4); return 0; } //---------------------------------------------------------------------------- int writeToFile(std::vector<char> p) { time_t sec; sec = time(NULL); std::stringstream ss; ss << sec; std::string fname = "output\\"+ss.str()+".bmp"; std::ofstream oFile(fname.c_str(), std::ios::binary); bmp_header(oFile); for (int i=0;i<640*480*3;i++) { oFile.write(&p[i],1); } oFile.close(); return 0; } //---------------------------------------------------------------------------- void c_bmp::saveas(std::vector<char>& pixel) { writeToFile(pixel); }