Hi, basically I have this code and it builds and I type in my values, but when I try and open it on irfanview it says 'invalid or unsupported PNM file' not quite sure why it happens - is there something wrong with my code
[
[
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define H 128
#define W 256
#define R 0
#define G 1
#define B 2
int main(void)
{
FILE*pfile = NULL;
int image[H][W][3];
int x,y;
float r1,r2;
float g1,g2;
float b1,b2;
float CS;
float CC;
for(y=0; y<H; y++)
for (x=0; x<W; x++)
{
image[y][x][R]=0;
image[y][x][G]=0;
image[y][x][B]=0;
}
printf("Enter First Colour Components\n\n");
do
{
printf("Enter First Red Value: \n");
scanf("%f", &r1);
}
while((r1<0)&&(r1>255));
do
{
printf("Enter First Green Value: \n");
scanf("%f", &g1);
}
while((g1<0)&&(g1>255));
do
{
printf("Enter First Blue Value: \n");
scanf("%f", &b1);
}
while((b1<0)&&(b1>255));
if((r1<255)&&(g1<255)&&(b1<255))
{
printf("In Range\n");
}
else
{
printf("Out of Range. Try Again\n");
}
printf("\nEnter Second Colour Components\n\n");
do
{
printf("Enter Second Red Value: \n");
scanf("%f", &r2);
}
while((r2<0)&&(r2>255));
do
{
printf("Enter Second Green Value: \n");
scanf("%f", &g2);
}
while((g2<0)&&(g2>255));
do
{
printf("Enter Second Blue Value:\n");
scanf("%f", &b2);
}
while((b2<0)&&(b2>255));
if ((r2<255)&&(g2<255)&&(b2<255))
{
printf("In Range\n");
}
else
{
printf("Out of Range. Try Again\n");
}
for (y=0; y<H; y++)
for (x=0; x<W; x++)
{
CC=(float)x;
CS=(float)x/255;
image[y][x][R]=(r1+((CS)*(r2-r1)));
image[y][x][G]=(g1+((CS)*(g2-g1)));
image[y][x][B]=(b1+((CS)*(b2-b1)));
}
pfile=fopen("image2.ppm","w");
fprintf(pfile,"P3\n");
fprintf(pfile,"#smooth transition\n");
fprintf(pfile,"%d %d", H,W);
fprintf(pfile,"255\n");
for (y=0; y<H; y++)
for (x=0; x<W; x++)
{
fprintf(pfile,"%d %d %d\n", image[y][x][R], image[y][x][G], image[y][x][B]);
fprintf(pfile,"%d %d %d\n", image[y][x][R], image[y][x][G], image[y][x][B]);
fprintf(pfile,"%d %d %d\n", image[y][x][R], image[y][x][G], image[y][x][B]);
}
fclose(pfile);
scanf("%*s");
return 0;
}
]