mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-01 00:17:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 4.3.0
 | |
| -----
 | |
| 
 | |
| API Changes
 | |
| ===========
 | |
| 
 | |
| Deprecations
 | |
| ^^^^^^^^^^^^
 | |
| 
 | |
| Several undocumented functions in ImageOps have been deprecated:
 | |
| ``gaussian_blur``, ``gblur``, ``unsharp_mask``, ``usm`` and
 | |
| ``box_blur``. Use the equivalent operations in ImageFilter
 | |
| instead. These functions will be removed in a future release.
 | |
| 
 | |
| TIFF Metadata Changes
 | |
| ^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| * TIFF tags with unknown type/quantity now default to being bare
 | |
|   values if they are 1 element, where previously they would be a
 | |
|   single element tuple. This is only with the new api, not the legacy
 | |
|   api. This normalizes the handling of fields, so that the metadata
 | |
|   with inferred or image specified counts are handled the same as
 | |
|   metadata with count specified in the TIFF spec.
 | |
| * The ``PhotoshopInfo``, ``XMP``, and ``JPEGTables`` tags now have a
 | |
|   defined type (bytes) and a count of 1.
 | |
| * The ``ImageJMetaDataByteCounts`` tag now has an arbitrary number of
 | |
|   items, as there can be multiple items, one for UTF-8, and one for
 | |
|   UTF-16.
 | |
| 
 | |
| Core Image API Changes
 | |
| ^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| These are internal functions that should not have been used by user
 | |
| code, but they were accessible from the python layer.
 | |
| 
 | |
| Debugging code within ``Image.core.grabclipboard`` was removed. It had been
 | |
| marked as ``will be removed in future versions`` since PIL. When enabled, it
 | |
| identified the format of the clipboard data.
 | |
| 
 | |
| The ``PIL.Image.core.copy`` and ``PIL.Image.Image.im.copy2`` methods
 | |
| have been removed.
 | |
| 
 | |
| The ``PIL.Image.core.getcount`` methods have been removed, use
 | |
| ``PIL.Image.core.get_stats()['new_count']`` property instead.
 | |
| 
 | |
| 
 | |
| API Additions
 | |
| =============
 | |
| 
 | |
| Get One Channel From Image
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| A new method :py:meth:`PIL.Image.Image.getchannel` has been added to
 | |
| return a single channel by index or name. For example,
 | |
| ``image.getchannel("A")`` will return alpha channel as separate image.
 | |
| ``getchannel`` should work up to 6 times faster than
 | |
| ``image.split()[0]`` in previous Pillow versions.
 | |
| 
 | |
| Box Blur
 | |
| ^^^^^^^^
 | |
| 
 | |
| A new filter, :py:class:`PIL.ImageFilter.BoxBlur`, has been
 | |
| added. This is a filter with similar results to a Gaussian blur, but
 | |
| is much faster.
 | |
| 
 | |
| Partial Resampling
 | |
| ^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| Added new argument ``box`` for :py:meth:`PIL.Image.Image.resize`. This
 | |
| argument defines a source rectangle from within the source image to be
 | |
| resized.  This is very similar to the ``image.crop(box).resize(size)``
 | |
| sequence except that ``box`` can be specified with subpixel accuracy.
 | |
| 
 | |
| New Transpose Operation
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The ``Image.TRANSVERSE`` operation has been added to
 | |
| :py:meth:`PIL.Image.Image.transpose`. This is equivalent to a transpose
 | |
| operation about the opposite diagonal.
 | |
| 
 | |
| Multiband Filters
 | |
| ^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| There is a new :py:class:`PIL.ImageFilter.MultibandFilter` base class
 | |
| for image filters that can run on all channels of an image in one
 | |
| operation. The original :py:class:`PIL.ImageFilter.Filter` class
 | |
| remains for image filters that can process only single band images, or
 | |
| require splitting of channels prior to filtering.
 | |
| 
 | |
| Other Changes
 | |
| =============
 | |
| 
 | |
| Loading 16-bit TIFF Images
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| Pillow now can read 16-bit multichannel TIFF files including files
 | |
| with alpha transparency. The image data is truncated to 8-bit
 | |
| precision.
 | |
| 
 | |
| Pillow now can read 16-bit signed integer single channel TIFF
 | |
| files. The image data is promoted to 32-bit for storage and
 | |
| processing.
 | |
| 
 | |
| SGI Images
 | |
| ^^^^^^^^^^
 | |
| 
 | |
| Pillow can now read and write uncompressed 16-bit multichannel SGI
 | |
| images to and from RGB and RGBA formats. The image data is truncated
 | |
| to 8-bit precision.
 | |
| 
 | |
| Pillow can now read RLE encoded SGI images in both 8 and 16-bit
 | |
| precision.
 | |
| 
 | |
| Performance
 | |
| ^^^^^^^^^^^
 | |
| 
 | |
| This release contains several performance improvements:
 | |
| 
 | |
| * Many memory bandwidth-bounded operations such as crop, image allocation,
 | |
|   conversion, split into bands and merging from bands are up to 2x faster.
 | |
| * Upscaling of multichannel images (such as RGB) is accelerated by 5-10%
 | |
| * JPEG loading is accelerated up to 15% and JPEG saving up to 20% when
 | |
|   using a recent version of libjpeg-turbo.
 | |
| * ``Image.transpose`` has been accelerated 15% or more by using a cache
 | |
|   friendly algorithm.
 | |
| * ImageFilters based on Kernel convolution are significantly faster
 | |
|   due to the new MultibandFilter feature.
 | |
| * All memory allocation for images is now done in blocks, rather than
 | |
|   falling back to an allocation for each scan line for images larger
 | |
|   than the block size.
 | |
| 
 | |
| CMYK Conversion
 | |
| ^^^^^^^^^^^^^^^
 | |
| 
 | |
| The basic CMYK->RGB conversion has been tweaked to match the formula
 | |
| from Google Chrome. This produces an image that is generally lighter
 | |
| than the previous formula, and more in line with what color managed
 | |
| applications produce.
 |