Hello, I'm saving a file in binary format and trying to open the same binary. However, I'm not getting the expected result. Here are the writing and reading functions. I am saving a .ppm format image, but when I try to bring it back to ASCII file to read it as text I can only get the header of it; In addition the image is only printed with the same code as the original, in the cases I tested every x rows where rows is the number of columns, ie in a 1024 x 768 image it prints the same as the original every 1024 pixels . PPM Images
//passa o arquivo para binario
arquivo = fopen("imagem.bin", "wb");
fwrite(&tipo, 1, sizeof (tipo), arquivo); //salva o tipo do arquivo
fwrite(&larg, 1, sizeof (int), arquivo); //salva a largura da imagem
fwrite(&alt, 1, sizeof (int), arquivo); // salva a altura do arquivo
fwrite(&max, 1, sizeof (int), arquivo); // salva o valor máximo para cor arquivo
for (i = 0; i < alt; i++){
for (j = 0; j < larg; j++){
fwrite(&imagem[i][j].r, 1 , sizeof (int), arquivo); /*salva as componentes*/
fwrite(&imagem[i][j].g, 1 , sizeof (int), arquivo); /*do arquivo em forma de*/
fwrite(&imagem[i][j].b, 1 , sizeof (int), arquivo); /*nova linha para cada cor*/
}
}
fclose(arquivo);
//abre a imagem em binário somente para leitura
arquivo = fopen("imagem.bin", "rb");
fread(code, 1, sizeof(code), arquivo);
fread(&larg, 1, sizeof(int), arquivo);
fread(&alt, 1, sizeof(int), arquivo);
fread(&max, 1, sizeof(int), arquivo);
for (i = 0; i < alt; i++){
for (i = 0; i < larg; i++){
fread(&imagem[i][j].r, 1, sizeof(int), arquivo);
fread(&imagem[i][j].g, 1, sizeof(int), arquivo);
fread(&imagem[i][j].b, 1, sizeof(int), arquivo);
}
}
fclose(arquivo);