mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 5.4.0
 | |
| -----
 | |
| 
 | |
| API changes
 | |
| ===========
 | |
| 
 | |
| APNG extension to PNG plugin
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| Animated Portable Network Graphics (APNG) images are not fully supported but
 | |
| can be opened via the PNG plugin to get some basic info::
 | |
| 
 | |
|     im = Image.open("image.apng")
 | |
|     print(im.mode)  # "RGBA"
 | |
|     print(im.size)  # (245, 245)
 | |
|     im.show()  # Shows a single frame
 | |
| 
 | |
| Check for libjpeg-turbo
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| You can check if Pillow has been built against the libjpeg-turbo version of the
 | |
| libjpeg library::
 | |
| 
 | |
|     from PIL import features
 | |
|     features.check_feature("libjpeg_turbo")  # True or False
 | |
| 
 | |
| Negative indexes in pixel access
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| When accessing individual image pixels, negative indexes are now also accepted.
 | |
| For example, to get or set the farthest pixel in the lower right of an image::
 | |
| 
 | |
|     px = im.load()
 | |
|     print(px[-1, -1])
 | |
|     px[-1, -1] = (0, 0, 0)
 | |
| 
 | |
| 
 | |
| New custom TIFF tags
 | |
| ^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| TIFF images can now be saved with custom integer, float and string TIFF tags::
 | |
| 
 | |
|     im = Image.new("RGB", (200, 100))
 | |
|     custom = {
 | |
|         37000: 4,
 | |
|         37001: 4.2,
 | |
|         37002: "custom tag value",
 | |
|         37003: u"custom tag value",
 | |
|         37004: b"custom tag value",
 | |
|     }
 | |
|     im.save("output.tif", tiffinfo=custom)
 | |
| 
 | |
|     im2 = Image.open("output.tif")
 | |
|     print(im2.tag_v2[37000])  # 4
 | |
|     print(im2.tag_v2[37002])  # "custom tag value"
 | |
|     print(im2.tag_v2[37004])  # b"custom tag value"
 | |
| 
 | |
| Other changes
 | |
| =============
 | |
| 
 | |
| ImageOps.fit
 | |
| ^^^^^^^^^^^^
 | |
| 
 | |
| Now uses one resize operation with ``box`` parameter internally
 | |
| instead of a crop and scale operations sequence.
 | |
| This improves the performance and accuracy of cropping since
 | |
| the ``box`` parameter accepts float values.
 |