#include #include 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; }