From 32590baeecea1ed1ef76a2e65d9aed8230f6d15a Mon Sep 17 00:00:00 2001 From: Kylian Ronfleux--Corail <35237015+Kyliroco@users.noreply.github.com> Date: Mon, 14 Apr 2025 08:07:11 +0000 Subject: [PATCH] add force_baseline which limit output of quantization table to 255 when giving a quality and a qantization table --- src/libImaging/JpegEncode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libImaging/JpegEncode.c b/src/libImaging/JpegEncode.c index 24e2c76ba..ec6fa0ea2 100644 --- a/src/libImaging/JpegEncode.c +++ b/src/libImaging/JpegEncode.c @@ -175,8 +175,10 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) { int i; int quality = 50; int last_q = 0; + boolean force_baseline = FALSE; if (context->quality != -1) { quality = context->quality; + force_baseline = TRUE; } int scale_factor = jpeg_quality_scaling(quality); for (i = 0; i < context->qtablesLen; i++) { @@ -185,7 +187,7 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) { i, &context->qtables[i * DCTSIZE2], scale_factor, - FALSE + force_baseline ); context->cinfo.comp_info[i].quant_tbl_no = i; last_q = i; @@ -194,7 +196,7 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) { // jpeg_set_defaults created two qtables internally, but we only // wanted one. jpeg_add_quant_table( - &context->cinfo, 1, &context->qtables[0], scale_factor, FALSE + &context->cinfo, 1, &context->qtables[0], scale_factor, force_baseline ); } for (i = last_q; i < context->cinfo.num_components; i++) {