From 440a1cf0ea52b074f4c405816c2da2a862281fec Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 20 Oct 2025 16:34:06 +0200 Subject: [PATCH] change fist mem then calc metadata --- src/kds_s2000w_handler.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index a11cc14..15307bc 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -331,25 +331,24 @@ void kds_s2000w_handler_get_current_metadata(handler_t* h, metadata_t* params) image->data = NULL; image->size = 0; - uint8_t channels = 1; - if (params->format == 1) - channels = 3; - kds_s2000w_image_converter_metadata_from_scanner_image(scanner_image, mdata); + kds_s2000w_image_converter_to_pnm(scanner_image, image); + kds_s2000w_debug_printf_int(DEBUG, "size of pnm image", image->size); + h->scan_status->read_bytes = _kds_s2000w_handler_find_first_data_byte(h->image); + params->depth = mdata->depth; params->pixels_per_line = mdata->width; params->lines = mdata->height; - kds_s2000w_image_converter_to_pnm(scanner_image, image); - kds_s2000w_debug_printf_int(DEBUG, "size of pnm image", image->size); + uint8_t channels = 1; + if (params->format == 1) + channels = 3; if (params->depth == 1) params->bytes_per_line = channels * floor((params->pixels_per_line + 7) / 8); else params->bytes_per_line = channels * params->pixels_per_line * params->depth / 8; - h->scan_status->read_bytes = _kds_s2000w_handler_find_first_data_byte(h->image); - free(mdata); mdata = NULL; free(scanner_image->data); -- 2.47.3