mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
4.1.0
 | 
						|
-----
 | 
						|
 | 
						|
Removed Deprecated Items
 | 
						|
========================
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
 | 
						|
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.
 |