C ++: copiando BMP utilizzando ciclo di fread e fwrite, provoca uscita BMP viene riempito con il colore del primo in ingresso bmp

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

  •  19-09-2019
  •  | 
  •  

Domanda

Non so perché, ma primo pixel (in basso a sinistra) sia caricata correttamente, ma gli altri non verranno caricati e il primo colore è usato per intero quadro ...

Ho questo nel ciclo

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

modifica:

pix è struct di tre caratteri non firmati (RGB), il caricamento di file e informazioni di intestazione sembra essere ok

È stato utile?

Soluzione

Che sistema operativo stai usando? Recentemente ho avuto un problema con la lettura di file binari sotto Win32. Si è scoperto che ho dimenticato di passare "b" bandiera per fopen:

pictureIn = fopen ("in.bmp", "rb");
pictureOut = fopen ("out.bmp", "wb");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top