witam, mam taki problem przy wczytaniu danych bitmapy, naglowki czyta mi poprawnie, zas gdy probuje wczytac dane to program przestaje mi dzialac.. zaznacze linijki ktore nie dzialaja.. bardzo bym sie ucieszyl gdyby ktos wiedzial czemu program po uruchomieniu przestaje mi dzialac, bo ja juz nie mam w ogole koncepcji na to ;/ z gory dziekuje..
BMP.cpp
#include <iostream>
#include "BMP.h"
using namespace std;
CBMP::CBMP() {
}
CBMP::~CBMP() {
}
void CBMP::Open(char* NazwaPliku) {
FILE* infile;
if ((infile=fopen(NazwaPliku,"rb"))==NULL) {
cout << "Nie mozna otworzyc pliku.\n" << endl;
return;
}
else {
fread(&bmpfh, sizeof(bmpfh), 1, infile);
fread(&bmpih, sizeof(bmpih), 1, infile);
*******************************************
m_Data=new char[bmpih.biSizeImage];
fread(&m_Data, bmpih.biSizeImage, 1, infile);
*******************************************
fclose(infile);
}
}
void CBMP::Save(char *NazwaPliku) {
FILE* infile;
if ((infile=fopen(NazwaPliku, "wb"))==NULL) {
cout << "Nie mozna zapisac pliku.\n" << endl;
return;
}
else {
fwrite(&bmpfh, sizeof(bmpfh), 1, infile);
fwrite(&bmpih, sizeof(bmpih), 1, infile);
*******************************************
fwrite(&m_Data, bmpih.biSizeImage, 1, infile);
*******************************************
}
fclose(infile);
}
BMP.h
struct BITMAPFILEHEADER {
short bfType;
int bfSize;
short bfReserved1;
short bfReserved2;
int bfOffBits;
};
struct BITMAPINFOHEADER {
int biSize;
int biWidth;
int biHeight;
short biPlanes;
short biBitCount;
int biCompression;
int biSizeImage;
int biXPelsPerMeter;
int biYPelsPerMeter;
int biClrUsed;
int biClrImportant;
};
class CBMP {
private:
BITMAPFILEHEADER bmpfh;
BITMAPINFOHEADER bmpih;
char* m_Data;
public:
CBMP();
~CBMP();
void Open(char* NazwaPliku);
void Save(char* NazwaPliku);
};
Program.cpp
#include <iostream>
#include "BMP.h"
using namespace std;
void main()
{
CBMP b1;
b1.Open("start.bmp");
b1.Save("out.bmp");
}