]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change fist mem then calc metadata
authorBastian Dehn <hhaalo@arcor.de>
Mon, 20 Oct 2025 14:34:06 +0000 (16:34 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 20 Oct 2025 14:34:06 +0000 (16:34 +0200)
src/kds_s2000w_handler.c

index a11cc14346a8765a44fb2dc7ef4b22b679cef59e..15307bc219c907c33a5c4224fc85c4c89285b241 100644 (file)
@@ -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);