C++:копирование bmp с использованием цикла fread и fwrite приводит к тому, что выходной bmp заполняется цветом того же самого, что и во входном bmp

StackOverflow https://stackoverflow.com/questions/1884165

  •  19-09-2019
  •  | 
  •  

Вопрос

Я не знаю почему, но первый пиксель (слева внизу) загружается правильно, но остальные не загружаются, и первый цвет используется для всего изображения...

У меня есть это в цикле

fread(&pix,sizeof(pix),1,pictureIn);
fwrite(&pix,sizeof(pix),1,pictureOut);

Редактировать:

pix - это структура из трех неподписанных символов (rgb), загрузка файла и информационного заголовка, похоже, в порядке

Это было полезно?

Решение

Какую операционную систему вы используете?Недавно у меня возникла проблема с чтением двоичных файлов под управлением Win32.Оказалось, что я забыл передать флаг "b" в fopen:

pictureIn = fopen ("in.bmp", "rb");
pictureOut = fopen ("out.bmp", "wb");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top