From 4b5181bbe9e9db1b10ea9e75b4441667891f6934 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 15 Feb 2025 12:39:05 +0100 Subject: [PATCH] change tiff to pnm with pbm write --- src/kds_s2000w_image_converter_netpbm.c | 33 +++++++++++-------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/kds_s2000w_image_converter_netpbm.c b/src/kds_s2000w_image_converter_netpbm.c index c2c39d8..9ff11bd 100644 --- a/src/kds_s2000w_image_converter_netpbm.c +++ b/src/kds_s2000w_image_converter_netpbm.c @@ -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; } -- 2.39.5