Skip to content

Empty JPEG2000 image after upgrading from 10.2.0 to 10.3.0 #7945

@stefan6419846

Description

@stefan6419846

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:

10 2 0

With version 10.3.0:

10 3 0

Corresponding issue where this was discovered: py-pdf/pypdf#2568

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions