mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-01 00:17:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 4.1.0
 | |
| -----
 | |
| 
 | |
| Deprecations
 | |
| ============
 | |
| 
 | |
| Several deprecated items have been removed.
 | |
| 
 | |
| * Support for spaces in tiff kwargs in the parameters for 'x resolution', 'y
 | |
|   resolution', 'resolution unit', and 'date time' has been
 | |
|   removed. Underscores should be used instead.
 | |
| 
 | |
| * The methods ``PIL.ImageDraw.ImageDraw.setink``,
 | |
|   ``PIL.ImageDraw.ImageDraw.setfill``, and
 | |
|   ``PIL.ImageDraw.ImageDraw.setfont`` have been removed.
 | |
| 
 | |
| 
 | |
| Other changes
 | |
| =============
 | |
| 
 | |
| Closing files when opening images
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The file handling when opening images has been overhauled. Previously,
 | |
| Pillow would attempt to close some, but not all image formats
 | |
| after loading the image data. Now, the following behavior
 | |
| is specified:
 | |
| 
 | |
| * For images where an open file is passed in, it is the
 | |
|   responsibility of the calling code to close the file.
 | |
| 
 | |
| * For images where Pillow opens the file and the file is known to have
 | |
|   only one frame, the file is closed after loading.
 | |
| 
 | |
| * If the file has more than one frame, or if it can't be determined,
 | |
|   then the file is left open to permit seeking to subsequent
 | |
|   frames. It will be closed, eventually, in the ``close`` or
 | |
|   ``__del__`` methods.
 | |
| 
 | |
| * If the image is memory mapped, then we can't close the mapping to
 | |
|   the underlying file until we are done with the image. The mapping
 | |
|   will be closed in the ``close`` or ``__del__`` method.
 | |
| 
 | |
| Changes to GIF handling when saving
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The :py:class:`PIL.GifImagePlugin` code has been refactored to fix the flow when
 | |
| saving images. There are two external changes that arise from this:
 | |
| 
 | |
| * An :py:class:`PIL.ImagePalette.ImagePalette` object is now accepted
 | |
|   as a specified palette argument in :py:meth:`PIL.Image.Image.save()`.
 | |
| 
 | |
| * The image to be saved is no longer modified in place by any of the
 | |
|   operations of the save function. Previously it was modified when
 | |
|   optimizing the image palette.
 | |
| 
 | |
| This refactor fixed some bugs with palette handling when saving
 | |
| multiple frame GIFs.
 | |
| 
 | |
| New method: Image.remap_palette
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The method :py:meth:`PIL.Image.Image.remap_palette()` has been
 | |
| added. This method was hoisted from the GifImagePlugin code used to
 | |
| optimize the palette.
 | |
| 
 | |
| Added decoder registry and support for Python-based decoders
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| There is now a decoder registry similar to the image plugin
 | |
| registries. Image plugins can register a decoder, and it will be
 | |
| called when the decoding is requested. This allows for the creation of
 | |
| pure Python decoders. While the Python decoders will not be as fast as
 | |
| their C based counterparts, they may be easier and quicker to develop
 | |
| or safer to run.
 | |
| 
 | |
| Tests
 | |
| ^^^^^
 | |
| 
 | |
| Many tests have been added, including correctness tests for image
 | |
| formats that have been previously untested.
 | |
| 
 | |
| We are now running automated tests in Docker containers against more
 | |
| Linux versions than are provided on Travis CI, which is currently
 | |
| Ubuntu 14.04 x64. This Pillow release is tested on 64-bit Alpine,
 | |
| Arch, Ubuntu 12.04 and 16.04, and 32-bit Debian Stretch and Ubuntu
 | |
| 14.04. This also covers a wider range of dependency versions than are
 | |
| provided on Travis natively.
 |