mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57: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,6 +2967,8 @@ def frombytes(mode, size, data, decoder_name="raw", *args):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _check_size(size)
 | 
					    _check_size(size)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    im = new(mode, size)
 | 
				
			||||||
 | 
					    if im.width != 0 and im.height != 0:
 | 
				
			||||||
        # may pass tuple instead of argument list
 | 
					        # may pass tuple instead of argument list
 | 
				
			||||||
        if len(args) == 1 and isinstance(args[0], tuple):
 | 
					        if len(args) == 1 and isinstance(args[0], tuple):
 | 
				
			||||||
            args = args[0]
 | 
					            args = args[0]
 | 
				
			||||||
| 
						 | 
					@ -2974,7 +2976,6 @@ def frombytes(mode, size, data, decoder_name="raw", *args):
 | 
				
			||||||
        if decoder_name == "raw" and args == ():
 | 
					        if decoder_name == "raw" and args == ():
 | 
				
			||||||
            args = mode
 | 
					            args = mode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    im = new(mode, size)
 | 
					 | 
				
			||||||
        im.frombytes(data, decoder_name, args)
 | 
					        im.frombytes(data, decoder_name, args)
 | 
				
			||||||
    return im
 | 
					    return im
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user