Hallo,
Ich versuche jetzt seid Stunden ein Bitmap zuerstellen, doch das Bitmap ,was erstellt wird lässt sich nicht öffnen.Mein Code lässt sich fehlerfrei kompillieren,deswegen kann ich auch keine Rückschlüsse auf meine Fehler ziehen.
Kann mir jemand helfen? Ich glaube von alleine komme ich nicht weiter,
Danke im Voraus!
lg BolleF1
Ich versuche jetzt seid Stunden ein Bitmap zuerstellen, doch das Bitmap ,was erstellt wird lässt sich nicht öffnen.Mein Code lässt sich fehlerfrei kompillieren,deswegen kann ich auch keine Rückschlüsse auf meine Fehler ziehen.
Code:
#include <iostream>
#include <fstream>
using namespace std;
struct BMFH { //BitMap File Header structure
unsigned short bfType; //könnte char sein
unsigned long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits;
};
struct BMIH { //BitMap Info Header structure
unsigned long biSize;
unsigned long biWidth;
unsigned long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned long biCompression;
unsigned long biSizeImage;
unsigned long biXPelsPerMeter;
unsigned long biYPelsPerMeter;
unsigned long biClrUsed;
unsigned long biClrImportant;
};
struct RGBQUAD{ //Palette RGBQUAD
int rgbBlue;
int rgbGreen;
int rgbRed;
int rgbReserved;
};
struct pixel { //legt die pixel sttructure fest
unsigned short R;
unsigned short G; //RGB
unsigned short B;
//unsigned short unused; //benötigt
};
void setfileheader(BMFH& fileheader
{ // Fileheader Einstellungen
fileheader.bfType = 19778;
fileheader.bfSize = 108;
fileheader.bfReserved1 = 0;
fileheader.bfReserved2 = 0;
fileheader.bfOffBits = 1078;
}
void setinfoheader(BMIH& infoheader)
{ //Infoheader Einstellungen
infoheader.biSize = sizeof(infoheader);
infoheader.biWidth = 128;
infoheader.biHeight = 128;
infoheader.biPlanes = 1;
infoheader.biBitCount = 24;
infoheader.biCompression = 0;
infoheader.biSizeImage = 0;
infoheader.biXPelsPerMeter = 0;
infoheader.biYPelsPerMeter = 0;
infoheader.biClrUsed = 0;
infoheader.biClrImportant = 0;
}
int main(){
//------------Pixel setzen und co ..-//
pixel PICTAR[128][128]; //Pixelarray
int i;
int j;
for (int i=0; i<128; i++){ //Horizontal
for (int j=0; j<128; j++){ //Vertikal
PICTAR[i][j].R = 100; //rote pixel
PICTAR[i][j].G = 0;
PICTAR[i][j].B = 0;
}
}
//-------------------
ifstream::pos_type size;
BMFH fileheader; //Fileheader
BMIH infoheader;//...
setfileheader(fileheader); //einstellungen Fileheader setzen
setinfoheader(infoheader);//...
ofstream myfile ("testbmp.bmp",ios::out | ios::binary); //Ofstream erstelllen mit Namen : myfile
//and opens it for binary input
/////////Daten schreiben///////////////
//myfile.write ((char*) &fileheader,sizeof(fileheader)); //schreibe header
//myfile.write ((char*) &infoheader,sizeof(infoheader)); //schreibe header
myfile.write ((char*) &fileheader,14); //schreibe header
myfile.write ((char*) &infoheader,40); //schreibe header
myfile.write ((char*) &PICTAR,sizeof(pixel)*128*128);
myfile.close();
}
Kann mir jemand helfen? Ich glaube von alleine komme ich nicht weiter,
Danke im Voraus!
lg BolleF1