From 38fafa672ce41bd0b9f04ae1492a622fa3598f83 Mon Sep 17 00:00:00 2001 From: Jakob Stornig Date: Sun, 24 Sep 2023 21:27:59 +0200 Subject: [PATCH] minor changes for pgm files --- image.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/image.c b/image.c index 6818cf8..3fcbd1e 100644 --- a/image.c +++ b/image.c @@ -14,12 +14,13 @@ void big_endian_to_c_uint(const char * bytes, void * target, int size) { void read_until_space_or_newline(char * buff, int maxCount, FILE * fptr){ int bufferOffset = 0; - char c = -1; + char c; + int counter = 0; do{ c = (char)getc(fptr); buff[bufferOffset++] = c; - }while(!feof(fptr) && c != 0 && c != ' ' && c !='\n'); + }while(!feof(fptr) && c != 0 && c != ' ' && c !='\n' && counter++ < maxCount); buff[bufferOffset-1] = 0; } @@ -29,8 +30,7 @@ Image * load_pgm_image(char * image_file_string){ image->label = -1; - char buffer[100]; - int magic_number = 0; + char buffer[2048]; fgets(buffer, 4, fptr); if(buffer[0] != 'P' || buffer[1] != '5'){ printf("Wrong file Format"); @@ -40,17 +40,16 @@ Image * load_pgm_image(char * image_file_string){ fgets(buffer, 1024, fptr); } - int image_width, image_height, image_length, image_white ; + int image_width, image_height, image_white ; read_until_space_or_newline(buffer, 10, fptr); - image_width = strtol(buffer, NULL, 10); + image_width = (int)strtol(buffer, NULL, 10); read_until_space_or_newline(buffer, 10, fptr); - image_height = strtol(buffer, NULL, 10); + image_height = (int)strtol(buffer, NULL, 10); read_until_space_or_newline(buffer, 10, fptr); - image_white = strtol(buffer, NULL, 10); + image_white = (int)strtol(buffer, NULL, 10); - image_length = image_width * image_height; image->pixel_values = matrix_create(image_height, image_width); for(int i = 0; i < image_height; i++){