From cbef0b3b00f7502b94db4d39b18b16a804a4faad Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 28 Apr 2024 20:12:56 +0200 Subject: [PATCH] change convert method with tiff --- CMakeLists.txt | 2 +- src/kds_s2000w_handler.c | 2 +- src/kds_s2000w_image_converter.c | 44 +++++++++++++++++++++------- src/kds_s2000w_image_converter.h | 2 +- tests/kds_s2000w_net_get_opt_tests.c | 2 +- tests/kds_s2000w_net_read_tests.c | 2 +- tests/kds_s2000w_net_tests.c | 2 +- tests/kds_s2000w_read_config_tests.c | 2 +- 8 files changed, 40 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bcaed9..b463696 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,7 @@ IF (RUN_TESTS) --wrap,kds_s2000w_client_status_session,\ --wrap,kds_s2000w_client_get_image,\ --wrap,kds_s2000w_client_get_metadata,\ ---wrap,kds_s2000w_convert_jpg_to_pnm,\ +--wrap,kds_s2000w_convert_tiff_to_pnm,\ --wrap,kds_s2000w_client_delete_image,\ --wrap,kds_s2000w_client_set_option,\ --wrap,load_config,\ diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index da02127..cbfc137 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -77,7 +77,7 @@ void _get_current_metadata(handler* h) h->current_metadata->depth = 8; kds_s2000w_convert_jpg_to_pnm_with_depth(jpg_image, pnm_image, h->current_metadata->depth); } else { - kds_s2000w_convert_jpg_to_pnm(jpg_image, pnm_image); + kds_s2000w_convert_tiff_to_pnm(jpg_image, pnm_image); } debug_printf_int(DEBUG, "size of pnm image", h->pnm_image->size); diff --git a/src/kds_s2000w_image_converter.c b/src/kds_s2000w_image_converter.c index 3678801..31da7b4 100644 --- a/src/kds_s2000w_image_converter.c +++ b/src/kds_s2000w_image_converter.c @@ -13,24 +13,28 @@ void kds_s2000w_convert_terminate() MagickCoreTerminus(); } -void kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out) +void kds_s2000w_convert_to_pnm_with_depth(blobdata* in, + blobdata* out, + int depth, + const char* format) { - debug_printf(ALL, "kds_s2000w_convert_jpg_to_pnm"); - kds_s2000w_convert_jpg_to_pnm_with_depth(in, out, -1); -} - -void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int depth) -{ - debug_printf(ALL, "kds_s2000w_convert_jpg_to_pnm_With_depth"); + debug_printf(ALL, "kds_s2000w_convert_to_pnm_With_depth"); + ExceptionInfo* exception = NULL; Image* input_image = NULL; ImageInfo* image_info = NULL; + char* streamname = NULL; + int str_length = 0; exception = AcquireExceptionInfo(); image_info = CloneImageInfo(NULL); - const char* streamname = "streamin.jpg"; - strcpy(image_info->filename, streamname); + + str_length = 10 + strlen(format); + streamname = malloc(sizeof(char) * str_length); + snprintf(streamname, str_length, "streamin.%s", format); + memcpy(image_info->filename, streamname, str_length); input_image = BlobToImage(image_info, in->data, in->size , exception); + input_image->properties = NULL; if (exception->severity != UndefinedException) @@ -39,6 +43,8 @@ void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int d if (input_image == NULL) { DestroyImageInfo(image_info); DestroyExceptionInfo(exception); + free(streamname); + streamname = NULL; return; } @@ -46,7 +52,7 @@ void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int d DestroyExceptionInfo(exception); exception = AcquireExceptionInfo(); image_info = CloneImageInfo(NULL); - strcpy(image_info->filename, "streamout.pnm"); + memcpy(image_info->filename, "streamout.pnm", 14); if (depth > -1) SetImageDepth(input_image, depth); @@ -56,4 +62,20 @@ void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int d DestroyImageInfo(image_info); DestroyImage(input_image); DestroyExceptionInfo(exception); + free(streamname); + streamname = NULL; +} + +void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int depth) +{ + debug_printf(ALL, "kds_s2000w_convert_jpg_to_pnm_With_depth"); + const char* extension = "jpg"; + kds_s2000w_convert_to_pnm_with_depth(in, out, -1, extension); +} + +void kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out) +{ + const char* extension = "tiff"; + debug_printf(ALL, "kds_s2000w_convert_tiff_to_pnm"); + kds_s2000w_convert_to_pnm_with_depth(in, out, -1, extension); } \ No newline at end of file diff --git a/src/kds_s2000w_image_converter.h b/src/kds_s2000w_image_converter.h index b4d64e0..3ab8b3d 100644 --- a/src/kds_s2000w_image_converter.h +++ b/src/kds_s2000w_image_converter.h @@ -8,6 +8,6 @@ typedef struct { void kds_s2000w_convert_terminate(); -void kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out); void kds_s2000w_convert_jpg_to_pnm_with_depth(blobdata* in, blobdata* out, int depth); +void kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out); #endif \ No newline at end of file diff --git a/tests/kds_s2000w_net_get_opt_tests.c b/tests/kds_s2000w_net_get_opt_tests.c index a8af197..5e7c327 100644 --- a/tests/kds_s2000w_net_get_opt_tests.c +++ b/tests/kds_s2000w_net_get_opt_tests.c @@ -14,7 +14,7 @@ void __wrap_load_config(program_config* config, const char* config_stream) return; } -void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out) +void __wrap_kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out) { return; } diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c index a24f259..43862d5 100644 --- a/tests/kds_s2000w_net_read_tests.c +++ b/tests/kds_s2000w_net_read_tests.c @@ -14,7 +14,7 @@ void __wrap_load_config(program_config* config, const char* config_stream) return; } -void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out) +void __wrap_kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out) { return; } diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 01702bd..36985da 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -17,7 +17,7 @@ void __wrap_load_config(program_config* config, const char* config_stream) config->username = "Max\0"; } -void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out) +void __wrap_kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out) { return; } diff --git a/tests/kds_s2000w_read_config_tests.c b/tests/kds_s2000w_read_config_tests.c index cbb2907..8be70a6 100644 --- a/tests/kds_s2000w_read_config_tests.c +++ b/tests/kds_s2000w_read_config_tests.c @@ -13,7 +13,7 @@ void __wrap_load_config(program_config* config, const char* config_stream) __real_load_config(config, config_stream); } -void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out) +void __wrap_kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out) { return; } -- 2.39.5