#include #include #include #include "imageInput.h" #define BUFFER_SIZE 100 #define FILE_HEADER_STRING "__info2_image_file_format__" #define FILE_HEADER_SIZE (sizeof(FILE_HEADER_STRING)-1) // TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei FILE *checkFile(const char *path) { FILE *datei = fopen(path,"rb"); if (datei == NULL) { perror("Datei konnte nicht geoeffnet werden"); return NULL; } char buffer[FILE_HEADER_SIZE+1]; if (fread(buffer,1,FILE_HEADER_SIZE,datei)!=FILE_HEADER_SIZE) { perror("Header konnte nicht eingelessen werden"); fclose(datei); return NULL; } buffer[FILE_HEADER_SIZE] = '\0'; if (strcmp(buffer,FILE_HEADER_STRING)!=0) { printf("Falscher Dateikopf"); //printf("\n%s",buffer); //printf("\n%s",FILE_HEADER_STRING); //printf("\n%d",strcmp(buffer,FILE_HEADER_STRING)); fclose(datei); return NULL; } return datei; } // TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen GrayScaleImageSeries *readImages(const char *path) { FILE *datei = checkFile(path); if (datei==NULL) { return NULL; } unsigned short image_count, width, height; fread(&image_count,1,sizeof(unsigned short),datei); fread(&width,1,sizeof(unsigned short),datei); fread(&height,1,sizeof(unsigned short),datei); //printf("%u Bilder und %u mal %u",image_count,width,height); fclose(datei); GrayScaleImageSeries *series = NULL; return series; } // TODO Vervollständigen Sie die Funktion clearSeries, welche eine Bildserie vollständig aus dem Speicher freigibt void clearSeries(GrayScaleImageSeries *series) { }