J'essaie de lire un fichier ppm et j'en crée un nouveau identique. Mais quand je les ouvre avec GIMP2 les images ne sont pas les mêmes.Comment lire et écrire un fichier ppm?
Où est le problème avec mon code?
int main()
{
FILE *in, *out;
in = fopen("parrots.ppm","r");
if(in == NULL)
{
std::cout<<"Error.\n";
return 0;
}
unsigned char *buffer = NULL;
long size = 0;
fseek(in, 0, 2);
size = ftell(in);
fseek(in, 0, 0);
buffer = new unsigned char[size];
if(buffer == NULL)
{
std::cout<<"Error\n";
return 0;
}
if(fread(buffer, size, 1, in) < 0)
{
std::cout<<"Error.\n";
return 0 ;
}
out = fopen("out.ppm","w");
if(in == NULL)
{
std::cout<<"Error.\n";
return 0;
}
if(fwrite(buffer, size, 1, out) < 0)
{
std::cout<<"Error.\n";
return 0;
}
delete[] buffer;
fcloseall();
return 0;
}
Avant que je lire le fichier ppm dans une structure et quand je l'ai écrit je reçois la même image, mais le vert est plus intense que dans l'image originale. Puis j'ai essayé cette simple lecture et écriture mais j'ai obtenu le même résultat.
Avez-vous essayé d'utiliser la bibliothèque officielle à cet effet? - http://netpbm.sourceforge.net/. FYI. – Dummy00001