2009-12-10 7 views
0

Je ne sais pas pourquoi, mais le premier pixel (en bas à gauche) est chargé correctement, mais les autres ne seront pas chargés et la première couleur est utilisée pour l'image entière ...C++: copier bmp en utilisant la boucle de fread et fwrite, la sortie de casmp bmp est remplie avec la couleur de la première en entrée bmp

Je possède ce dans le cycle

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

modifier:

pix est struct de trois caractères non signés (rgb), fichier de chargement et en-tête d'information semble être bon

+0

Vous n'avez pas donné assez d'informations. Qu'est-ce que pix? Comment connaissez-vous la taille? – dmazzoni

+0

Vérifiez-vous réellement les valeurs de retour afin que vous puissiez dire si quelque chose s'est mal passé? –

+1

Et vous avez probablement ouvert un fichier? Comment avez-vous fait? Avez-vous, par exemple, l'ouvrir en mode binaire? Et est-ce dans une boucle? Vous avez l'idée - nous ne faisons pas attention aux lecteurs. –

Répondre

1

Quel système d'exploitation utilisez-vous? J'ai récemment eu un problème avec la lecture de fichiers binaires sous Win32. Il s'est avéré que j'ai oublié de passer le drapeau "b" pour fopen:

pictureIn = fopen ("in.bmp", "rb"); 
pictureOut = fopen ("out.bmp", "wb");