diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 32285beeac1..63aa7f1decb 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -1358,15 +1358,9 @@ as 8-bit RGB(A). The :py:meth:`~PIL.Image.Image.save` method supports the following options: -**qmin** / **qmax** - Integer, 0-63. The quality of images created by an AVIF encoder are - controlled by minimum and maximum quantizer values. The higher these - values are, the worse the quality. - **quality** Integer, 0-100, defaults to 75. 0 gives the smallest size and poorest - quality, 100 the largest and best quality. Setting "qmin" or "qmax" will override - this. + quality, 100 the largest and best quality. **subsampling** If present, sets the subsampling for the encoder. Defaults to ``4:2:0``. diff --git a/src/PIL/AvifImagePlugin.py b/src/PIL/AvifImagePlugin.py index 2696599c56d..8125b548a06 100644 --- a/src/PIL/AvifImagePlugin.py +++ b/src/PIL/AvifImagePlugin.py @@ -156,8 +156,6 @@ def _save( is_single_frame = total == 1 - qmin = info.get("qmin", -1) - qmax = info.get("qmax", -1) quality = info.get("quality", 75) if not isinstance(quality, int) or quality < 0 or quality > 100: msg = "Invalid quality setting" @@ -218,8 +216,6 @@ def _save( im.size[0], im.size[1], subsampling, - qmin, - qmax, quality, speed, max_threads, diff --git a/src/_avif.c b/src/_avif.c index d2ec6438996..c5051671049 100644 --- a/src/_avif.c +++ b/src/_avif.c @@ -234,8 +234,6 @@ AvifEncoderNew(PyObject *self_, PyObject *args) { avifEncoder *encoder; char *subsampling; - int qmin; - int qmax; int quality; int speed; int exif_orientation; @@ -255,12 +253,10 @@ AvifEncoderNew(PyObject *self_, PyObject *args) { if (!PyArg_ParseTuple( args, - "IIsiiiiissiiOOSSiSO", + "IIsiiissiiOOSSiSO", &width, &height, &subsampling, - &qmin, - &qmax, &quality, &speed, &max_threads, @@ -327,17 +323,12 @@ AvifEncoderNew(PyObject *self_, PyObject *args) { _codec_available("aom", AVIF_CODEC_FLAG_CAN_ENCODE)); encoder->maxThreads = is_aom_encode && max_threads > 64 ? 64 : max_threads; - if (qmin == -1 || qmax == -1) { #if AVIF_VERSION >= 1000000 - encoder->quality = quality; + encoder->quality = quality; #else - encoder->minQuantizer = normalize_quantize_value(64 - quality); - encoder->maxQuantizer = normalize_quantize_value(100 - quality); + encoder->minQuantizer = normalize_quantize_value(64 - quality); + encoder->maxQuantizer = normalize_quantize_value(100 - quality); #endif - } else { - encoder->minQuantizer = normalize_quantize_value(qmin); - encoder->maxQuantizer = normalize_quantize_value(qmax); - } if (strcmp(codec, "auto") == 0) { encoder->codecChoice = AVIF_CODEC_CHOICE_AUTO;