diff --git a/Tests/test_pyarrow.py b/Tests/test_pyarrow.py index d111f18f59d..61d651b08be 100644 --- a/Tests/test_pyarrow.py +++ b/Tests/test_pyarrow.py @@ -283,3 +283,9 @@ def test_image_metadata(mode: str, metadata: list[str]) -> None: assert "bands" in parsed_metadata assert parsed_metadata["bands"] == metadata + + +def test_zero_dimension() -> None: + array = pyarrow.array([], type=pyarrow.uint8()) + assert Image.fromarrow(array, "L", (0, 7)).size == (0, 7) + assert Image.fromarrow(array, "L", (7, 0)).size == (7, 0) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index bde53152bbb..fae0fcffcc9 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -3516,7 +3516,7 @@ def fromarrow( schema_capsule, array_capsule = obj.__arrow_c_array__() _im = core.new_arrow(mode, size, schema_capsule, array_capsule) - if _im: + if _im is not None: return Image()._new(_im) msg = "new_arrow returned None without an exception"