Skip to content

Commit

Permalink
Raise ValueError when trying to save empty image
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Mar 28, 2022
1 parent 1bc0e1b commit ae8de77
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
7 changes: 7 additions & 0 deletions Tests/test_file_jpeg.py
Expand Up @@ -68,6 +68,13 @@ def test_sanity(self):
assert im.format == "JPEG"
assert im.get_format_mimetype() == "image/jpeg"

@pytest.mark.parametrize("size", ((1, 0), (0, 1), (0, 0)))
def test_zero(self, size, tmp_path):
f = str(tmp_path / "temp.jpg")
im = Image.new("RGB", size)
with pytest.raises(ValueError):
im.save(f)

def test_app(self):
# Test APP/COM reader (@PIL135)
with Image.open(TEST_FILE) as im:
Expand Down
2 changes: 1 addition & 1 deletion Tests/test_image.py
Expand Up @@ -656,7 +656,7 @@ def test_no_new_file_on_error(self, tmp_path):
temp_file = str(tmp_path / "temp.jpg")

im = Image.new("RGB", (0, 0))
with pytest.raises(SystemError):
with pytest.raises(ValueError):
im.save(temp_file)

assert not os.path.exists(temp_file)
Expand Down
2 changes: 2 additions & 0 deletions src/PIL/JpegImagePlugin.py
Expand Up @@ -626,6 +626,8 @@ def get_sampling(im):


def _save(im, fp, filename):
if im.width == 0 or im.height == 0:
raise ValueError("cannot write empty image as JPEG")

try:
rawmode = RAWMODE[im.mode]
Expand Down

0 comments on commit ae8de77

Please sign in to comment.