diff --git a/imageInput.c b/imageInput.c index 2e89d2a..8f933bc 100644 --- a/imageInput.c +++ b/imageInput.c @@ -7,15 +7,39 @@ #define FILE_HEADER_STRING "__info2_image_file_format__" // TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei - +void setParameters(const char buffer[], unsigned int* imageCount, int* width, int* height); +void allocateMemory(GrayScaleImageSeries *s, const int imageCount, const int width, const int height); // TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen GrayScaleImageSeries *readImages(const char *path) { GrayScaleImageSeries *series = NULL; - + + // hier Niko Stuff + // create char array buffer with bytes containing initialization information + // TODO some kind of logic to get correct address in binary file + char initBuffer[3]; + /* + int readBytes = fread(initBuffer, 1, 3, //file); + */ + unsigned int* imageCount = &(series->count); // sets a pointer for int variable count in struct + setParameters(initBuffer, imageCount, series->images->width, series->images->height); + allocateMemory(*imageCount, series->images->width, series->images->height); + return series; } +void setParameters(const char buffer[], unsigned int* imageCount, int* width, int* height) { // sets the parameters + *imageCount = (int) buffer[0]; + *width = (int) buffer[1]; + *height = (int) buffer[2]; +} + +void allocateMemory(GrayScaleImageSeries s, const int imageCount, const int width, const int height) { + for (int i = 0; i < imageCount; i++) { + s->images[i].buffer = (unsigned char *) malloc(width * height * sizeof(unsigned char)); // allocates memory for every image in the series + } +} + // TODO Vervollständigen Sie die Funktion clearSeries, welche eine Bildserie vollständig aus dem Speicher freigibt void clearSeries(GrayScaleImageSeries *series) {