This fixes a regression introduced in 8.3.0 when converting an image to a NumPy array
with a dtype
argument.
>>> from PIL import Image
>>> import numpy
>>> im = Image.new("RGB", (100, 100))
>>> numpy.array(im, dtype=numpy.float64)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __array__() takes 1 positional argument but 2 were given
>>>
In 8.3.0, a check to see if the destination was sys.stdout
when saving an image was
updated. This lead to an :py:exc:`OSError` being raised if the environment restricted
access.
The :py:exc:`OSError` is now silently caught.
In 8.3.0, :py:meth:`~PIL.ImageOps.exif_transpose` was changed to ensure that the original image EXIF data was not modified, and the orientation was only removed from the modified copy.
However, for certain images the orientation was already missing from the modified image, leading to a :py:exc:`KeyError`.
This error has been resolved, and the copying of metadata to the modified image improved.