Skip to content

Commit 83083bb

Browse files
BUG: Handle chained colorspace for inline images when no filter is set (#3008)
Closes #2998.
1 parent 7c5fe87 commit 83083bb

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

pypdf/generic/_data_structures.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,6 +1343,8 @@ def _read_inline_image(self, stream: StreamType) -> Dict[str, Any]:
13431343
data = extract_inline_DCT(stream)
13441344
elif filtr == "not set":
13451345
cs = settings.get("/CS", "")
1346+
if isinstance(cs, list):
1347+
cs = cs[0]
13461348
if "RGB" in cs:
13471349
lcs = 3
13481350
elif "CMYK" in cs:

tests/test_images.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,3 +473,14 @@ def test_4bits_images(caplog):
473473
name = "iss2411.png"
474474
img = Image.open(BytesIO(get_data_from_url(url, name=name)))
475475
assert image_similarity(reader.pages[0].images[1].image, img) == 1.0
476+
477+
478+
@pytest.mark.enable_socket
479+
def test_no_filter_with_colorspace_as_list():
480+
"""Tests for #2998"""
481+
url = "https://github.com/user-attachments/files/18058571/9bf7a2e2-72c8-4ac1-b8ae-164df16c8cef.pdf"
482+
name = "iss2998.pdf"
483+
reader = PdfReader(BytesIO(get_data_from_url(url, name=name)))
484+
485+
page = reader.pages[0]
486+
page.images.items()

0 commit comments

Comments
 (0)