From ce297543bf74d24660b74d25224f18d5a4b46de5 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 5 Feb 2024 20:19:19 +0100 Subject: [PATCH] refactor convert tool --- tools/convert.c | 61 +++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/tools/convert.c b/tools/convert.c index 6d54d9e..a6d41a1 100644 --- a/tools/convert.c +++ b/tools/convert.c @@ -2,48 +2,55 @@ #include #include "../src/kds_s2000w_image_converter.h" -int main(int argc, char* argv[]) +void read_file(const char* filename, blobdata* input) { - blobdata output; - output.size = 0; - blobdata blob; - blob.size = 0; - FILE* fptr = NULL; - size_t size = 0; - blob.data = NULL; - - fptr = fopen(argv[1], "r"); + FILE* fptr = fopen(filename, "r"); if (fptr == NULL) { - printf("file %s not found\n", argv[1]); + printf("file %s not found\n", filename); exit(1); } - blob.data = malloc(sizeof(char)); - while(fread(blob.data, sizeof(char), 1, fptr)) { - blob.size++; + input->data = malloc(sizeof(char)); + while(fread(input->data, sizeof(char), 1, fptr)) { + input->size++; } fseek(fptr, 0L, SEEK_SET); - printf("file size of %s: %i byts\n", argv[1], blob.size); - free(blob.data); - blob.data = NULL; + printf("file size of %s: %i byts\n", filename, input->size); - blob.data = malloc(sizeof(char) * blob.size); - fread(blob.data, blob.size, 1, fptr); + input->data = malloc(sizeof(char) * input->size); + fread(input->data, input->size, 1, fptr); fclose(fptr); fptr = NULL; +} + +void write_file(blobdata* output) +{ + FILE* fptr = fopen("output.pnm", "w"); + fwrite(output->data, output->size, 1, fptr); + printf("file size of output.pnm: %i bytes\n", output->size); + fclose(fptr); + fptr = NULL; +} + +int main(int argc, char* argv[]) +{ + blobdata input; + input.size = 0; + input.data = NULL; + blobdata output; + output.size = 0; + output.data = NULL; + + read_file(argv[1], &input); kds_s2000w_convert_init(); - kds_s2000w_convert_jpg_to_pnm_With_depth(&blob, &output, 8); + kds_s2000w_convert_jpg_to_pnm_With_depth(&input, &output, 8); kds_s2000w_convert_terminate(); - fptr = fopen("output.pnm", "w"); - fwrite(output.data, output.size, 1, fptr); - printf("file size of output.pnm: %i bytes\n", output.size); - fclose(fptr); - fptr = NULL; + write_file(&output); - free(blob.data); - blob.data = NULL; + free(input.data); + input.data = NULL; free(output.data); output.data = NULL; return 0; -- 2.39.5