]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
refactor convert tool
authorBastian Dehn <hhaalo@arcor.de>
Mon, 5 Feb 2024 19:19:19 +0000 (20:19 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 5 Feb 2024 19:19:19 +0000 (20:19 +0100)
tools/convert.c

index 6d54d9e9c422aa3f374ec8a5bf13ab0aa3b4873d..a6d41a1783e2e1a339904c762c1842d459637a08 100644 (file)
@@ -2,48 +2,55 @@
 #include <stdlib.h>
 #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;