Skip to content

Commit 642d574

Browse files
committed
Added JPXDecode for RGBA images
1 parent b3af769 commit 642d574

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Tests/test_file_pdf.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from PIL import Image, PdfParser, features
1010

11-
from .helper import hopper, mark_if_feature_version
11+
from .helper import hopper, mark_if_feature_version, skip_unless_feature
1212

1313

1414
def helper_save_as_pdf(tmp_path, mode, **kwargs):
@@ -42,6 +42,11 @@ def test_save(tmp_path, mode):
4242
helper_save_as_pdf(tmp_path, mode)
4343

4444

45+
@skip_unless_feature("jpg_2000")
46+
def test_save_rgba(tmp_path):
47+
helper_save_as_pdf(tmp_path, "RGBA")
48+
49+
4550
def test_monochrome(tmp_path):
4651
# Arrange
4752
mode = "1"

src/PIL/PdfImagePlugin.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ def _save(im, fp, filename, save_all=False):
168168
filter = "DCTDecode"
169169
colorspace = PdfParser.PdfName("DeviceRGB")
170170
procset = "ImageC" # color images
171+
elif im.mode == "RGBA":
172+
filter = "JPXDecode"
173+
colorspace = PdfParser.PdfName("DeviceRGB")
174+
procset = "ImageC" # color images
171175
elif im.mode == "CMYK":
172176
filter = "DCTDecode"
173177
colorspace = PdfParser.PdfName("DeviceCMYK")
@@ -194,6 +198,8 @@ def _save(im, fp, filename, save_all=False):
194198
)
195199
elif filter == "DCTDecode":
196200
Image.SAVE["JPEG"](im, op, filename)
201+
elif filter == "JPXDecode":
202+
Image.SAVE["JPEG2000"](im, op, filename)
197203
elif filter == "FlateDecode":
198204
ImageFile._save(im, op, [("zip", (0, 0) + im.size, 0, im.mode)])
199205
elif filter == "RunLengthDecode":

0 commit comments

Comments
 (0)