mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-04-27 20:43:43 +03:00
Fixed Image.frombytes() for images with a zero dimension
This commit is contained in:
parent
d05ff5059f
commit
5071692039
|
@ -906,6 +906,10 @@ class TestImage:
|
||||||
im = Image.new("RGB", size)
|
im = Image.new("RGB", size)
|
||||||
assert im.tobytes() == b""
|
assert im.tobytes() == b""
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("size", ((1, 0), (0, 1), (0, 0)))
|
||||||
|
def test_zero_frombytes(self, size):
|
||||||
|
Image.frombytes("RGB", size, b"")
|
||||||
|
|
||||||
def test_has_transparency_data(self):
|
def test_has_transparency_data(self):
|
||||||
for mode in ("1", "L", "P", "RGB"):
|
for mode in ("1", "L", "P", "RGB"):
|
||||||
im = Image.new(mode, (1, 1))
|
im = Image.new(mode, (1, 1))
|
||||||
|
|
|
@ -2967,15 +2967,16 @@ def frombytes(mode, size, data, decoder_name="raw", *args):
|
||||||
|
|
||||||
_check_size(size)
|
_check_size(size)
|
||||||
|
|
||||||
# may pass tuple instead of argument list
|
|
||||||
if len(args) == 1 and isinstance(args[0], tuple):
|
|
||||||
args = args[0]
|
|
||||||
|
|
||||||
if decoder_name == "raw" and args == ():
|
|
||||||
args = mode
|
|
||||||
|
|
||||||
im = new(mode, size)
|
im = new(mode, size)
|
||||||
im.frombytes(data, decoder_name, args)
|
if im.width != 0 and im.height != 0:
|
||||||
|
# may pass tuple instead of argument list
|
||||||
|
if len(args) == 1 and isinstance(args[0], tuple):
|
||||||
|
args = args[0]
|
||||||
|
|
||||||
|
if decoder_name == "raw" and args == ():
|
||||||
|
args = mode
|
||||||
|
|
||||||
|
im.frombytes(data, decoder_name, args)
|
||||||
return im
|
return im
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user