From 83a9ab48ce242f3e51a0e22bc9f6666f662eaa4a Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 14 Feb 2025 16:40:38 +0100 Subject: [PATCH] change read jpeg from mem --- src/kds_s2000w_image_converter_netpbm.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/kds_s2000w_image_converter_netpbm.c b/src/kds_s2000w_image_converter_netpbm.c index 6cfdadf..77e685f 100644 --- a/src/kds_s2000w_image_converter_netpbm.c +++ b/src/kds_s2000w_image_converter_netpbm.c @@ -243,7 +243,6 @@ void _kds_s2000w_image_converter_write_pnm(uint8_t* data, } void _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(j_decompress_ptr cinfo, - FILE* jpeg_stream, FILE* pnm_stream, enum imgformat format) { @@ -257,7 +256,6 @@ void _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(j_decompress_ptr cinfo row = &decompress_data[cinfo->output_width * cinfo->output_scanline * format]; jpeg_read_scanlines(cinfo, &row, 1); } - fclose(jpeg_stream); _kds_s2000w_image_converter_write_pnm(decompress_data, decompress_size, @@ -300,14 +298,13 @@ void _kds_s2000w_image_converter_jpg_to_pnm(blobdata* in, blobdata* out) if (!kds_s2000w_image_type_check_is_jpeg(in)) return; - FILE* jpeg_stream = fmemopen(in->data, in->size, "r"); struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr err; cinfo.err = jpeg_std_error(&err); jpeg_create_decompress(&cinfo); - jpeg_stdio_src(&cinfo, jpeg_stream); + jpeg_mem_src(&cinfo, (const unsigned char*) in->data, in->size); jpeg_read_header(&cinfo, TRUE); jpeg_start_decompress(&cinfo); @@ -315,10 +312,10 @@ void _kds_s2000w_image_converter_jpg_to_pnm(blobdata* in, blobdata* out) FILE* pnm_stream = open_memstream(outdata, &out->size); if (cinfo.out_color_space == JCS_RGB) - _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(&cinfo, jpeg_stream, pnm_stream, RGB); + _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(&cinfo, pnm_stream, RGB); if (cinfo.out_color_space == JCS_GRAYSCALE) - _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(&cinfo, jpeg_stream, pnm_stream, GRAY); + _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(&cinfo, pnm_stream, GRAY); fclose(pnm_stream); out->data = malloc(sizeof(char) * out->size); -- 2.39.5