]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change tiff to pnm with pbm write
authorBastian Dehn <hhaalo@arcor.de>
Sat, 15 Feb 2025 11:39:05 +0000 (12:39 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 15 Feb 2025 13:41:41 +0000 (14:41 +0100)
src/kds_s2000w_image_converter_netpbm.c

index c2c39d8458b6d30cd9badb86c48757a7ceeb0908..9ff11bddcaa1c3931918908ed8e83f266bc93576 100644 (file)
@@ -172,14 +172,11 @@ void _kds_s2000w_image_converter_jpeg_metadata(blobdata* image, image_metadata*
        jpeg_destroy_decompress(&cinfo);
 }
 
-void _kds_s2000w_image_converter_set_pixels(uint8_t data_byte, xel* pixels)
+void _kds_s2000w_image_converter_set_pixels(uint8_t data_byte, bit* pixels)
 {
-       uint8_t bit = 0;
        int32_t last_idx = BYTE_BITS - 1;
        for (uint32_t i = 0; i < BYTE_BITS; i++) {
-               bit = data_byte >> (last_idx - i) & 1;
-               if (bit == 0)
-                       pixels[i].b = PNM_MAXMAXVAL;
+               pixels[i] = data_byte >> (last_idx - i) & 1;
        }
 }
 
@@ -191,27 +188,27 @@ void _kds_s2000w_image_converter_write_bw_pnm(uint8_t* data,
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_image_converter_write_bw_pnm");
 
-       uint32_t bit_witdth = width * BYTE_BITS;
-       xel** pixels = pnm_allocarray(bit_witdth, height);
+       size_t bit_width = width * BYTE_BITS;
+       bit** pixels = pbm_allocarray(bit_width, height);
        for (uint32_t i = 0; i < height; i++) {
-               memset(pixels[i], 0, sizeof(xel) * bit_witdth);
+               memset(pixels[i], 0, sizeof(bit) * bit_width);
        }
 
-       uint32_t currwidth = 0;
-       uint32_t currheight = 0;
-       for (uint32_t i = 0; i < size; i++) {
-               _kds_s2000w_image_converter_set_pixels(data[i], &pixels[currheight][currwidth]);
-               currwidth += BYTE_BITS;
+       uint32_t curr_width = 0;
+       uint32_t curr_height = 0;
+       for (int i = 0; i < size; i++) {
+               _kds_s2000w_image_converter_set_pixels(data[i], &pixels[curr_height][curr_width]);
+               curr_width += 8;
 
-               if (currwidth >= bit_witdth) {
-                       currwidth = 0;
-                       currheight++;
+               if (curr_width >= bit_width) {
+                       curr_width = 0;
+                       curr_height++;
                }
        }
 
-       pnm_writepnm(pnm_stream, pixels, width, height, PNM_MAXMAXVAL, PBM_FORMAT, 0);
+       pbm_writepbm(pnm_stream, pixels, width, height, 0);
 
-       pnm_freearray(pixels, height);
+       pbm_freearray(pixels, height);
        pixels = NULL;
 }