mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	Removed qmin and qmax (#17)
This commit is contained in:
		
							parent
							
								
									38f0d105e4
								
							
						
					
					
						commit
						1410d23453
					
				
							
								
								
									
										2
									
								
								.github/workflows/macos-install.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/macos-install.sh
									
									
									
									
										vendored
									
									
								
							|  | @ -17,7 +17,7 @@ brew install \ | |||
|     dav1d \ | ||||
|     aom \ | ||||
|     rav1e \ | ||||
|     ninja | ||||
|     svt-av1 | ||||
| if [[ "$ImageOS" == "macos13" ]]; then | ||||
|     brew install --ignore-dependencies libraqm | ||||
| else | ||||
|  |  | |||
							
								
								
									
										2
									
								
								.github/workflows/test-mingw.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/test-mingw.yml
									
									
									
									
										vendored
									
									
								
							|  | @ -60,10 +60,10 @@ jobs: | |||
|               mingw-w64-x86_64-gcc \ | ||||
|               mingw-w64-x86_64-ghostscript \ | ||||
|               mingw-w64-x86_64-lcms2 \ | ||||
|               mingw-w64-x86_64-libavif \ | ||||
|               mingw-w64-x86_64-libimagequant \ | ||||
|               mingw-w64-x86_64-libjpeg-turbo \ | ||||
|               mingw-w64-x86_64-libraqm \ | ||||
|               mingw-w64-x86_64-libavif \ | ||||
|               mingw-w64-x86_64-libtiff \ | ||||
|               mingw-w64-x86_64-libwebp \ | ||||
|               mingw-w64-x86_64-openjpeg2 \ | ||||
|  |  | |||
|  | @ -1359,14 +1359,8 @@ as 8-bit RGB(A). | |||
| The :py:meth:`~PIL.Image.Image.save` method supports the following options: | ||||
| 
 | ||||
| **quality** | ||||
|     Integer, 1-100, defaults to 75. 0 gives the smallest size and poorest | ||||
|     quality, 100 the largest and best quality. The value of this setting | ||||
|     controls the ``qmin`` and ``qmax`` encoder 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. | ||||
|     Integer, 0-100, defaults to 75. 0 gives the smallest size and poorest | ||||
|     quality, 100 the largest and best quality. | ||||
| 
 | ||||
| **subsampling** | ||||
|     If present, sets the subsampling for the encoder. Defaults to ``4:2:0``. | ||||
|  | @ -1380,6 +1374,10 @@ The :py:meth:`~PIL.Image.Image.save` method supports the following options: | |||
| **speed** | ||||
|     Quality/speed trade-off (0=slower-better, 10=fastest). Defaults to 6. | ||||
| 
 | ||||
| **max_threads** | ||||
|     Limit the number of active threads used. By default, there is no limit. If the aom | ||||
|     codec is used, there is a maximum of 64. | ||||
| 
 | ||||
| **range** | ||||
|     YUV range, either "full" or "limited". Defaults to "full" | ||||
| 
 | ||||
|  | @ -1392,8 +1390,17 @@ The :py:meth:`~PIL.Image.Image.save` method supports the following options: | |||
|     For tile encoding, the (log 2) number of tile rows and columns to use. | ||||
|     Valid values are 0-6, default 0. | ||||
| 
 | ||||
| **autotiling** | ||||
|     Split the image up to allow parallelization. Enabled automatically if "tile_rows" | ||||
|     and "tile_cols" both have their default values of zero. Requires libavif version | ||||
|     **0.11.0** or greater. | ||||
| 
 | ||||
| **alpha_premultiplied** | ||||
|     Encode the image with premultiplied alpha. Defaults to ``False`` | ||||
|     Encode the image with premultiplied alpha. Defaults to ``False``. Requires libavif | ||||
|     version **0.9.0** or greater. | ||||
| 
 | ||||
| **advanced** | ||||
|     Codec specific options. Requires libavif version **0.8.2** or greater. | ||||
| 
 | ||||
| **icc_profile** | ||||
|     The ICC Profile to include in the saved file. | ||||
|  |  | |||
|  | @ -170,7 +170,7 @@ Many of Pillow's features require external libraries: | |||
|     instead of installing libavif through Homebrew directly, you can use | ||||
|     Homebrew to install libavif's build dependencies:: | ||||
| 
 | ||||
|         brew install aom dav1d rav1e | ||||
|         brew install aom dav1d rav1e svt-av1 | ||||
| 
 | ||||
|     Then see ``depends/install_libavif.sh`` to install libavif. | ||||
| 
 | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -289,8 +289,8 @@ def pilinfo(out: IO[str] | None = None, supported_formats: bool = True) -> None: | |||
|         ("freetype2", "FREETYPE2"), | ||||
|         ("littlecms2", "LITTLECMS2"), | ||||
|         ("webp", "WEBP"), | ||||
|         ("jpg", "JPEG"), | ||||
|         ("avif", "AVIF"), | ||||
|         ("jpg", "JPEG"), | ||||
|         ("jpg_2000", "OPENJPEG (JPEG2000)"), | ||||
|         ("zlib", "ZLIB (PNG/ZIP)"), | ||||
|         ("libtiff", "LIBTIFF"), | ||||
|  |  | |||
							
								
								
									
										17
									
								
								src/_avif.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								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; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user