#include "headers.h"
typedef struct pgm {
int n;
int m;
int v;
int* data;
} pgm;
unsigned char* readPGM(char* path, int* m, int* n, int* v)
{
pgm* pPgm;
int sayilar;
n = NULL;
m = NULL;
char rgbDegeri[256];
FILE* fp = fopen(path, "r");
if (!fp) {
printf("Hata: Dosya acilamiyor! %s.\n\n", path);
exit(1);
}
pPgm = (pgm*)malloc(sizeof(pgm));
printf("Dosya bulundu, acilan dosya: %s...\n", path);
fscanf(fp, "%s", rgbDegeri);
if (strcmp(rgbDegeri, "P2") == 0) {
printf("DOSYA BASARIYLA ACILDI.\n");
fscanf(fp, "%s", rgbDegeri);
while (rgbDegeri[0] == '#') {
fgets(rgbDegeri, 255, fp);
fscanf(fp, "%s", rgbDegeri);
}
sscanf(rgbDegeri, "%d", &pPgm->n);
fscanf(fp, "%d", &pPgm->m);
fscanf(fp, "%d", &pPgm->v);
printf("Genislik: %d, Yukseklik: %d\n", pPgm->n, pPgm->m);
unsigned char* data = (unsigned char*)malloc ((*m)*(*n) *sizeof(unsigned char));
int i = 0;
do{
fscanf(fp, "%d", &sayilar);
pPgm->data[I] = sayilar;
i++;
} while (i < pPgm->n * pPgm->m);
printf("Loaded PGM. Size: %d x %d, Greyscale: %d \n",pPgm->n, pPgm->m, pPgm->v + 1);
}
fclose(fp);
}
int main(int* m, int* n, int* v) {
char* path = "fen.PGM";
readPGM(path,m,n,v);
return 0;
}