C ++: Copiando BMP usando loop de fret e fwrite, a saída do CASUSE BMP é preenchida com a cor do FISRT One na entrada BMP

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

  •  19-09-2019
  •  | 
  •  

Pergunta

Não sei o porquê, mas o primeiro pixel (inferior esquerdo) é carregado corretamente, mas os outros não carregam e a primeira cor é usada para a imagem inteira ...

Eu tenho isso no ciclo

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

editar:

Pix está estrutura de três chars não assinados (RGB), o arquivo de carga e o cabeçalho de informações parece estar ok

Foi útil?

Solução

Qual sistema operacional você está usando? Recentemente, tive problemas em ler arquivos binários sob Win32. Aconteceu que eu esqueci de passar a bandeira "B" para FOPEN:

pictureIn = fopen ("in.bmp", "rb");
pictureOut = fopen ("out.bmp", "wb");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top