#include <stdio.h>
#include <stdlib.h>
typedef struct {
unsigned char r, g, b;
} pixel;
int main() {
FILE *fp;
char buf[16];
int w, h, max;
pixel *image;
fp = fopen("image.ppm", "r");
if (fp == NULL) {
fprintf(stderr, "Error: Could not open file\n");
exit(1);
}
fgets(buf, sizeof(buf), fp);
if (buf[0] != 'P' || buf[1] != '6') {
fprintf(stderr, "Error: Invalid file format\n");
exit(1);
}
fscanf(fp, "%d %d", &w, &h);
fscanf(fp, "%d", &max);
if (max != 255) {
fprintf(stderr, "Error: Unsupported color depth\n");
exit(1);
}
fgetc(fp); // skip the newline character
image = (pixel*)malloc(w * h * sizeof(pixel));
if (image == NULL) {
fprintf(stderr, "Error: Out of memory\n");
exit(1);
}
fread(image, sizeof(pixel), w * h, fp);
fclose(fp);
// Render the image using OpenGL or other graphics library
// ...
free(image);
return 0;
}