Skip to content

PyArrow conversion fails for images larger than 2048x2048 #9229

Closed

Description

@lgeiger

What did you do?

When trying to convert an image larger than 2048x2048 (e.g. 2049x2049) to Arrow, the conversion fails.

Discovered during #9220

import numpy as np
import pyarrow as pa
from PIL import Image

size = 2049
img = Image.fromarray(np.random.randint(0, 255, size=(size, size, 3), dtype=np.uint8))
arr = pa.array(img)

What did you expect to happen?

Conversion to pyarrow array would succeed like it does for size <= 2048

What actually happened?

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[10], line 3
      1 size = 2049
      2 img = Image.fromarray(np.random.randint(0, 255, size=(size, size, 3), dtype=np.uint8))
----> 3 arr = pa.array(img)
File /opt/homebrew/lib/python3.12/site-packages/pyarrow/array.pxi:274, in pyarrow.lib.array()
File ~/code/Pillow/src/PIL/Image.py:736, in Image.__arrow_c_array__(self, requested_schema)
    732 def __arrow_c_array__(
    733     self, requested_schema: object | None = None
    734 ) -> tuple[object, object]:
    735     self.load()
--> 736     return (self.im.__arrow_c_schema__(), self.im.__arrow_c_array__())
ValueError: Image is in multiple array blocks, use imaging_new_block for zero copy

What are your OS, Python and Pillow versions?

  • OS: macOS
  • Python: 3.12.11
  • Pillow: nightly from main
Pillow 12.0.0.dev0
Python 3.12.11 (main, Jun  3 2025, 15:41:47) [Clang 17.0.0 (clang-1700.0.13.3)]
--------------------------------------------------------------------
Python executable is /opt/homebrew/opt/python@3.12/bin/python3.12
System Python files loaded from /opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12
--------------------------------------------------------------------
Python Pillow modules loaded from /Users/lgeiger/code/Pillow/src/PIL
Binary Pillow modules loaded from /Users/lgeiger/code/Pillow/src/PIL
--------------------------------------------------------------------
--- PIL CORE support ok, compiled for 12.0.0.dev0
*** TKINTER support not installed
--- FREETYPE2 support ok, loaded 2.14.1
--- LITTLECMS2 support ok, loaded 2.17
--- WEBP support ok, loaded 1.6.0
--- AVIF support ok, loaded 1.3.0
--- JPEG support ok, compiled for libjpeg-turbo 3.1.2
--- OPENJPEG (JPEG2000) support ok, loaded 2.5.4
--- ZLIB (PNG/ZIP) support ok, loaded 1.2.12
--- LIBTIFF support ok, loaded 4.7.1
--- RAQM (Bidirectional Text) support ok, loaded 0.10.3
*** LIBIMAGEQUANT (Quantization method) support not installed
--- XCB (X protocol) support ok
--------------------------------------------------------------------

Activity

  1. wiredfool commented on Oct 1, 2025

    @wiredfool
    Member
  2. added
    ArrowApache Arrow support (fromarrow, __arrow_c_array__)
    on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ArrowApache Arrow support (fromarrow, __arrow_c_array__)PNG

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions