}
void _kds_s2000w_image_converter_gray_or_color_jpg_to_pnm(j_decompress_ptr cinfo,
- FILE* jpeg_stream,
FILE* pnm_stream,
enum imgformat format)
{
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,
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);
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);