Witam!
Staram się zrobić program, który tworzy plik o rozszerzeniu bmp i skopiuje do niego zawartość już istniejącego. Niestety, nie mogę wczytać całej zawartości, bo już przy pierwszym "fwrite", wyrzuca mi błąd. Nie wiem w ogóle, czy ten kod ma odpowiedni kształt, ale zrobiłem to analogicznie do fread'a (gdy czytałem informacje z obrazka).
Mógłby ktoś rzucić okiem co może być nie tak? :)
Może chodzi o to, że trzeba zrobić jakieś miejsce w tym pliku na te dane (z FileHeader i InfoHeader)? Nie mogę nic na ten temat znaleźć.
FILE *picture = fopen("ObrazWPliku.bmp", "wb");
if (picture!=NULL)
{
//FileHeader
fwrite(&odczytywanie.Bitmapa, 2, 1, picture);
fwrite(&odczytywanie.rozmiar, 4, 1, picture);
fwrite(&odczytywanie.reserved1, 4, 1, picture);
fwrite(&odczytywanie.reserved2, 4, 1, picture);
// InfoHeader
fwrite(&odczytywanie.reserved3, 4, 1, picture);
fwrite(&odczytywanie.szerokosc, 4, 1, picture);
fwrite(&odczytywanie.wysokosc, 4, 1, picture);
fwrite(&odczytywanie.planes, 2, 1, picture);
fwrite(&odczytywanie.BitCount, 2, 1, picture);
fwrite(&odczytywanie.Compresion, 4, 1, picture);
fwrite(&odczytywanie.ImageSize, 4, 1, picture);
fwrite(&odczytywanie.XPixel, 4, 1, picture);
fwrite(&odczytywanie.YPixel, 4, 1, picture);
fwrite(&odczytywanie.ColorsUsed, 4, 1, picture);
fwrite(&odczytywanie.ColorsImportant, 4, 1, picture);
for (i = 0; i < odczytywanie.wysokosc[0]; i++)
{
for (j = 0; j < odczytywanie.szerokosc[0]; j++)
{
fwrite(&colors[i][j].blue, 1, 1, picture);
fwrite(&colors[i][j].green, 1, 1, picture);
fwrite(&colors[i][j].red, 1, 1, picture);
}
}
}