-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Closed
Labels
Description
What did you do?
I want to load a JPEG2000 image from raw data into Pillow for further processing. After upgrading from 10.2.0 to 10.3.0, this broke for a specific image.
What did you expect to happen?
The image is being loaded as before.
What actually happened?
The image is not being loaded correctly and just empty.
What are your OS, Python and Pillow versions?
- OS: OpenSUSE Leap 15.4, Ubuntu 22.04 (through GitHub Actions)
- Python: 3.9.18, 3.12.2 (through GitHub Actions)
- Pillow: 10.3.0
--------------------------------------------------------------------
Pillow 10.3.0
Python 3.9.18 (main, Sep 06 2023, 07:49:32) [GCC]
--------------------------------------------------------------------
Python executable is /home/stefan/temp/venv/bin/python3
Environment Python files loaded from /home/stefan/temp/venv
System Python files loaded from /usr
--------------------------------------------------------------------
Python Pillow modules loaded from /home/stefan/temp/venv/lib64/python3.9/site-packages/PIL
Binary Pillow modules loaded from /home/stefan/temp/venv/lib64/python3.9/site-packages/PIL
--------------------------------------------------------------------
--- PIL CORE support ok, compiled for 10.3.0
*** TKINTER support not installed
--- FREETYPE2 support ok, loaded 2.13.2
--- LITTLECMS2 support ok, loaded 2.16
--- WEBP support ok, loaded 1.3.2
--- WEBP Transparency support ok
--- WEBPMUX support ok
--- WEBP Animation support ok
--- JPEG support ok, compiled for libjpeg-turbo 3.0.2
--- OPENJPEG (JPEG2000) support ok, loaded 2.5.2
--- ZLIB (PNG/ZIP) support ok, loaded 1.2.11
--- LIBTIFF support ok, loaded 4.6.0
--- RAQM (Bidirectional Text) support ok, loaded 0.10.1, fribidi 1.0.10, harfbuzz 8.4.0
*** LIBIMAGEQUANT (Quantization method) support not installed
--- XCB (X protocol) support ok
--------------------------------------------------------------------
from PIL import Image, ImageFile
from io import BytesIO
ImageFile.LOAD_TRUNCATED_IMAGES = True
with open("raw.txt", mode="rb") as fd:
data = fd.read()
image = Image.open(BytesIO(data), formats=("JPEG2000",))
print(image)
image.load()
image.save(f"{Image.__version__}.png")Corresponding raw data: raw.txt
With version 10.2.0:
With version 10.3.0:
Corresponding issue where this was discovered: py-pdf/pypdf#2568

