mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Raise a warning if NumPy will not raise an error during conversion
This commit is contained in:
parent
b8d96246f7
commit
d02f91c6da
|
@ -35,10 +35,13 @@ def test_toarray():
|
|||
test_with_dtype(numpy.float64)
|
||||
test_with_dtype(numpy.uint8)
|
||||
|
||||
if parse_version(numpy.__version__) >= parse_version("1.23"):
|
||||
with Image.open("Tests/images/truncated_jpeg.jpg") as im_truncated:
|
||||
with Image.open("Tests/images/truncated_jpeg.jpg") as im_truncated:
|
||||
if parse_version(numpy.__version__) >= parse_version("1.23"):
|
||||
with pytest.raises(OSError):
|
||||
numpy.array(im_truncated)
|
||||
else:
|
||||
with pytest.warns(UserWarning):
|
||||
numpy.array(im_truncated)
|
||||
|
||||
|
||||
def test_fromarray():
|
||||
|
|
|
@ -679,12 +679,24 @@ class Image:
|
|||
new["shape"] = shape
|
||||
new["typestr"] = typestr
|
||||
new["version"] = 3
|
||||
if self.mode == "1":
|
||||
# Binary images need to be extended from bits to bytes
|
||||
# See: https://github.com/python-pillow/Pillow/issues/350
|
||||
new["data"] = self.tobytes("raw", "L")
|
||||
else:
|
||||
new["data"] = self.tobytes()
|
||||
try:
|
||||
if self.mode == "1":
|
||||
# Binary images need to be extended from bits to bytes
|
||||
# See: https://github.com/python-pillow/Pillow/issues/350
|
||||
new["data"] = self.tobytes("raw", "L")
|
||||
else:
|
||||
new["data"] = self.tobytes()
|
||||
except Exception as e:
|
||||
if not isinstance(e, (MemoryError, RecursionError)):
|
||||
try:
|
||||
import numpy
|
||||
from packaging.version import parse as parse_version
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
if parse_version(numpy.__version__) < parse_version("1.23"):
|
||||
warnings.warn(e)
|
||||
raise
|
||||
return new
|
||||
|
||||
def __getstate__(self):
|
||||
|
|
Loading…
Reference in New Issue
Block a user