diff --git a/Tests/test_imageops.py b/Tests/test_imageops.py index 124f2a7535a..9fd03975131 100644 --- a/Tests/test_imageops.py +++ b/Tests/test_imageops.py @@ -133,6 +133,9 @@ def _check( _check((10, 0), lambda im: ImageOps.cover(im, (5, 5)), (5, 0)) _check((5, 5), lambda im: ImageOps.cover(im, (2, 0)), (0, 0)) + _check((10, 1), lambda im: ImageOps.scale(im, 0.4), (4, 0)) + _check((1, 10), lambda im: ImageOps.scale(im, 0.4), (0, 4)) + def test_1pxfit() -> None: # Division by zero in equalize if image is 1 pixel high diff --git a/src/PIL/ImageOps.py b/src/PIL/ImageOps.py index ceff85e1c1a..58820e0b0ee 100644 --- a/src/PIL/ImageOps.py +++ b/src/PIL/ImageOps.py @@ -475,6 +475,8 @@ def scale( raise ValueError(msg) else: size = (round(factor * image.width), round(factor * image.height)) + if min(size) == 0: + return _new_empty(image, size) return image.resize(size, resample)