From e24b3ebaab164a3dbd7b22263c328136c10554ee Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 23 Dec 2025 23:28:35 +1100 Subject: [PATCH] Added support for 1 mode images --- Tests/images/hopper.jxl | Bin 3409 -> 0 bytes Tests/images/hopper_jxl_bits.ppm | Bin 49167 -> 0 bytes Tests/images/{ => jxl}/flower.jxl | Bin Tests/images/{ => jxl}/flower2.jxl | Bin Tests/images/jxl/hopper.jxl | Bin 0 -> 5998 bytes Tests/images/jxl/hopper_bw_500.jxl | Bin 0 -> 92423 bytes Tests/images/jxl/hopper_gray.jxl | Bin 0 -> 5202 bytes Tests/images/{ => jxl}/iss634.jxl | Bin Tests/images/{ => jxl}/transparent.jxl | Bin Tests/images/jxl/unknown_mode.jxl | Bin 0 -> 205 bytes Tests/test_file_jxl.py | 70 +++++++++---------------- Tests/test_file_jxl_animated.py | 14 ++--- Tests/test_file_jxl_metadata.py | 14 ++--- src/PIL/JpegXlImagePlugin.py | 3 +- src/_jpegxl.c | 18 ++----- src/libImaging/Unpack.c | 9 ++++ 16 files changed, 54 insertions(+), 74 deletions(-) delete mode 100644 Tests/images/hopper.jxl delete mode 100644 Tests/images/hopper_jxl_bits.ppm rename Tests/images/{ => jxl}/flower.jxl (100%) rename Tests/images/{ => jxl}/flower2.jxl (100%) create mode 100644 Tests/images/jxl/hopper.jxl create mode 100644 Tests/images/jxl/hopper_bw_500.jxl create mode 100644 Tests/images/jxl/hopper_gray.jxl rename Tests/images/{ => jxl}/iss634.jxl (100%) rename Tests/images/{ => jxl}/transparent.jxl (100%) create mode 100644 Tests/images/jxl/unknown_mode.jxl diff --git a/Tests/images/hopper.jxl b/Tests/images/hopper.jxl deleted file mode 100644 index d89d3c267fef793855eb3d7fb7bec3a10e999e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3409 zcmV-X4X*P43SU4%<=!fa0Tm^=YaRfA3YAgD4PMUmeEFfnV%o-ahPK+au!Iwo-ReRs zCJw$AfP?pykdRQ)HP6fC4&a3}#F&aqL_|c#MnyzNW3_@}WMiaaRAa1StYfrdv}1H* ztYdUzv}0^zEMw#`*4egWv}0^ztYd6rlw#Dyn2hl<#$c7_&_v*b0MwLK1X`n+1nZBY zpq;Hxu32r!C9F}@pGCrh29ldDZQG6L3mVV*SK6g2bLR1P zkptv(lKi+GE$@#aShv(3dBIwAQg~-& ziq?bcA!89_Ad3P%i2jPu*KNtfR{aqWp&Z8<&M$jwyb1)`Zm)x99~KM&&`jI$v(Q|> zYjE1@dkWk5m^$-s+<%gfQD;hJX?2|sO(lM$RRT94#7|sBa{NPOTc(4 zC<9}JMh~_V|GcqeFv4U^2SR^burwyAaQ|hKN|YSm_l0$ya9x^DMT>{adZB?WB;RWQ zZH+5z@wfUMY$V9AZq{$ZfyuP--8ihX--T^$W+C-WOwW<~kgsMkP{jXC&Ek&H#E@O* zle!F06SqE0yV%esovNLLNx&UY_)CvrXyvucW=&u9ky;Fk!%=77rrm0VY4BhTcsCC+DXqfvsId zu_$37wi!?v%OOf+gw0)X>kT*24sSpHQFxamWxvTfg1D?^%wf(|C9dr#wqI{2KfEu2A20{^eZd{P6Wv$ z|8$S;y#NO*`iI2E5_$Dj@iMK91NHM=bGK%yvdWfH{OI^{aeHwa{p?f_euWeitUKU} zy!-s$_`kR^vTWOK+p3b>O3X}wsGjQq?kX9#{27Y%at`$vT~$en!!OaJYbu#uCldB`Ay>EF_c>h zTtVV;__rqO1XiFn1795kBw{z2I3u!mgx8BJ9dTkxU>%gJNG{~pq30}L=MjRGwu-Ig z8c#Ry>v{Bg#!WCzzb9%m2w2Hdb+O?^D!sKZNHPdKgkcNb{G-ZvO2cLJMk|IF7)Fue zCN|6Gv9S)t3*RBbZ zJ!|19EQZy#h`Aq78^n_@%|#FM;$o+KKQ2R;??ZJw7u6d44f_yI=GRpZ8mkX3&OvZS z*4eqyRP(O#pRa(R&`D1yv=FjZ1Zz`KmE_;{)}hr99zvp#J7p}pn(yGqk76|+)QDBURy6`5WN{&Nsbjgl5U z6~?NcbXW}&X+RQ#m``yO%fKrS|9;+iOznr=AJzx%$HGR>H%TZwxKtz_3KfOQBO5;# z?C5Cp3p0^7l51ishCU0LvI;g>Cm$qU59#q|*58od(MVR;*0Q7?2eCONpZ{wa`Ecx{ z z&l$LYMz?IHV<1 z#l~(aU@&TY5PdN(9@)d-R)8je#J%x>6NO=s#| zKX2SKs5t!qIFp|s>3wfoW0mdOceGrvGz1(no?DF04k(C1v=$wd64+kOf(|~KQ?b0y zo#B)#5S+$!d>TS_-4Nmf;E2-6tso1XE9$|Ak2)p3dKO&w>E5)yivQgsg{|-)n425> zx&-!cWIC|cUvx8p%HL}5H;iEdrQ3B0?=x(te28{{?K4(DaBcxN%IeD3-kQL2WC!m4^n`3+R3D1Lo`kwy8}b4}$JF zd1PD~X32_`aSJ?d6pEBgUKihg6Ltv6zANK8ZPYObNPuQZ1ZU^yY(p2%lF>4rHDdF|U^HAIXBmTO}CD1D;}R0HPkM_O(B^=hQJiyZYKRe`1w^DqbU8B&7i<5hadip1wdaXLz+t z1?xANg>5uBWkZL)Ma>|aF!HVVpD<4*lH?0)3O_{?hx)cPzPK=2#GBKvgmD5$o;nva z-E5h{(0w}yMT==&LenjS;fIKj(eJFJiJ?>rWm0m+cLUzsby5ASMDh@}OaO`aa-=k;d6nR^o5FueTqqns_yV?&iTZ(JCn6M(ODlSkT00>9Orc{K0 z!w;IQ=2fGnF7`hkl3S(Pr7QBGKT3xhBx4A$taIIz7+xDro*C90?~^}Z zJ+5uL=Y@)ooUpE%{_;q%(-~{{`%P7M$;z>BH6>yEzRKhh!d(B)1=ZiqBWIdLK~af7 zUVNE6ydN67ne(55R)nV#KUhe75u4_<n3Fqf7F>`%y;yc&5jXcEA`hVMgBAp!J)$MK{lDvz` z%cK$uStO|j$7rU%^E~B^jq-C?ci=KaAAavXdNJe}e-vB9Dp_B6E8I7Ba7}ev-d>y> z1a4^W7n8jEF1aQHmyYmm9sx(^prMos`(UE!<0Bvg2J8kM;ivNQ7p7!dpDPVkNUJmE zWDO2NnE)Nmes|6G-7c{h{{FAG;ph7mG};Uc+XaA({Z2rtP->%{vR1oY+9%Yq->HIdkl`>Cgby>1DL#rU;NjVW%Hi?ez9rr~IMj}H diff --git a/Tests/images/hopper_jxl_bits.ppm b/Tests/images/hopper_jxl_bits.ppm deleted file mode 100644 index 881aca33369b3bdb1e0ae8671777188d89734bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49167 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 LxjMIObL;;F0-tO! diff --git a/Tests/images/flower.jxl b/Tests/images/jxl/flower.jxl similarity index 100% rename from Tests/images/flower.jxl rename to Tests/images/jxl/flower.jxl diff --git a/Tests/images/flower2.jxl b/Tests/images/jxl/flower2.jxl similarity index 100% rename from Tests/images/flower2.jxl rename to Tests/images/jxl/flower2.jxl diff --git a/Tests/images/jxl/hopper.jxl b/Tests/images/jxl/hopper.jxl new file mode 100644 index 0000000000000000000000000000000000000000..3be85de648c283f0a0e46bb0965b8b09aba09e56 GIT binary patch literal 5998 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 literal 0 HcmV?d00001 diff --git a/Tests/images/jxl/hopper_bw_500.jxl b/Tests/images/jxl/hopper_bw_500.jxl new file mode 100644 index 0000000000000000000000000000000000000000..79ad8883f0d0887c7457fb665536f9639221b27c GIT binary patch literal 92423 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

V5qz8P^H# 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

iYHF)6*e+GsT6FrA-6$%G%vd9ENJZx3dupjt4S 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_jxl.py b/Tests/test_file_jxl.py index faefed00c..86e718a05 100644 --- a/Tests/test_file_jxl.py +++ b/Tests/test_file_jxl.py @@ -1,10 +1,11 @@ from __future__ import annotations +import os import re import pytest -from PIL import Image, JpegXlImagePlugin, features +from PIL import Image, JpegXlImagePlugin, UnidentifiedImageError, features from .helper import assert_image_similar_tofile, skip_unless_feature @@ -13,10 +14,6 @@ try: except ImportError: pass -# cjxl v0.9.2 41b8cdab -# hopper.jxl: cjxl hopper.png hopper.jxl -q 75 -e 8 -# 16_bit_binary.jxl: cjxl 16_bit_binary.pgm 16_bit_binary.jxl -q 100 -e 9 - class TestUnsupportedJpegXl: def test_unsupported(self, monkeypatch: pytest.MonkeyPatch) -> None: @@ -24,7 +21,7 @@ class TestUnsupportedJpegXl: with pytest.raises(OSError): with pytest.warns(UserWarning, match="JXL support not installed"): - Image.open("Tests/images/hopper.jxl") + Image.open("Tests/images/jxl/hopper.jxl") @skip_unless_feature("jpegxl") @@ -34,53 +31,34 @@ class TestFileJpegXl: assert version is not None assert re.search(r"\d+\.\d+\.\d+$", version) - def test_read_rgb(self) -> None: - """ - Can we read an RGB mode JPEG XL file without error? - Does it have the bits we expect? - """ - - with Image.open("Tests/images/hopper.jxl") as im: - assert im.mode == "RGB" - assert im.size == (128, 128) + @pytest.mark.parametrize( + "mode, test_file", + ( + ("1", "hopper_bw_500.png"), + ("L", "hopper_gray.jpg"), + ("I;16", "jxl/16bit_subcutaneous.cropped.png"), + ("RGB", "hopper.jpg"), + ("RGBA", "transparent.png"), + ), + ) + def test_read(self, mode: str, test_file: str) -> None: + with Image.open( + "Tests/images/jxl/" + + os.path.splitext(os.path.basename(test_file))[0] + + ".jxl" + ) as im: assert im.format == "JPEG XL" - im.getdata() + assert im.mode == mode - # generated with: - # djxl hopper.jxl hopper_jxl_bits.ppm - assert_image_similar_tofile(im, "Tests/images/hopper_jxl_bits.ppm", 1) + assert_image_similar_tofile(im, "Tests/images/" + test_file, 1.9) - def test_read_rgba(self) -> None: - # Generated with `cjxl transparent.png transparent.jxl -q 100 -e 8` - with Image.open("Tests/images/transparent.jxl") as im: - assert im.mode == "RGBA" - assert im.size == (200, 150) - assert im.format == "JPEG XL" - im.getdata() - - im.tobytes() - - assert_image_similar_tofile(im, "Tests/images/transparent.png", 1) - - def test_read_i16(self) -> None: - """ - Can we read 16-bit Grayscale JPEG XL image? - """ - - with Image.open("Tests/images/jxl/16bit_subcutaneous.cropped.jxl") as im: - assert im.mode == "I;16" - assert im.size == (128, 64) - assert im.format == "JPEG XL" - im.getdata() - - assert_image_similar_tofile( - im, "Tests/images/jxl/16bit_subcutaneous.cropped.png", 1 - ) + def test_unknown_mode(self) -> None: + with pytest.raises(UnidentifiedImageError): + Image.open("Tests/images/jxl/unknown_mode.jxl") def test_JpegXlDecode_with_invalid_args(self) -> None: """ Calling decoder functions with no arguments should result in an error. """ - with pytest.raises(TypeError): _jpegxl.JpegXlDecoder() diff --git a/Tests/test_file_jxl_animated.py b/Tests/test_file_jxl_animated.py index ebb342d3e..f4283a71e 100644 --- a/Tests/test_file_jxl_animated.py +++ b/Tests/test_file_jxl_animated.py @@ -12,17 +12,17 @@ pytestmark = skip_unless_feature("jpegxl") def test_n_frames() -> None: """Ensure that jxl format sets n_frames and is_animated attributes correctly.""" - with Image.open("Tests/images/hopper.jxl") as im: + with Image.open("Tests/images/jxl/hopper.jxl") as im: assert im.n_frames == 1 assert not im.is_animated - with Image.open("Tests/images/iss634.jxl") as im: + with Image.open("Tests/images/jxl/iss634.jxl") as im: assert im.n_frames == 41 assert im.is_animated def test_duration() -> None: - with Image.open("Tests/images/iss634.jxl") as im: + with Image.open("Tests/images/jxl/iss634.jxl") as im: assert im.info["duration"] == 70 assert im.info["timestamp"] == 0 @@ -43,17 +43,17 @@ def test_seek() -> None: assert im1.is_animated # Traverse frames in reverse, checking timestamps and durations - total_dur = 0 + total_duration = 0 for frame in reversed(range(im1.n_frames)): im1.seek(frame) im2.seek(frame) assert_image_equal(im1.convert("RGB"), im2.convert("RGB")) - total_dur += im1.info["duration"] + total_duration += im1.info["duration"] assert im1.info["duration"] == im2.info["duration"] assert im1.info["timestamp"] == im1.info["timestamp"] - assert total_dur == 8000 + assert total_duration == 8000 assert im1.tell() == 0 assert im2.tell() == 0 @@ -65,7 +65,7 @@ def test_seek() -> None: def test_seek_errors() -> None: - with Image.open("Tests/images/iss634.jxl") as im: + with Image.open("Tests/images/jxl/iss634.jxl") as im: with pytest.raises(EOFError, match="attempt to seek outside sequence"): im.seek(-1) diff --git a/Tests/test_file_jxl_metadata.py b/Tests/test_file_jxl_metadata.py index c88483518..e9f25c3ee 100644 --- a/Tests/test_file_jxl_metadata.py +++ b/Tests/test_file_jxl_metadata.py @@ -27,7 +27,7 @@ except ImportError: def test_read_exif_metadata() -> None: - with Image.open("Tests/images/flower.jxl") as im: + with Image.open("Tests/images/jxl/flower.jxl") as im: assert im.format == "JPEG XL" exif_data = im.info["exif"] @@ -44,7 +44,7 @@ def test_read_exif_metadata() -> None: def test_read_exif_metadata_without_prefix() -> None: - with Image.open("Tests/images/flower2.jxl") as im: + with Image.open("Tests/images/jxl/flower2.jxl") as im: # Assert prefix is not present assert im.info["exif"][:6] != b"Exif\x00\x00" @@ -53,12 +53,12 @@ def test_read_exif_metadata_without_prefix() -> None: def test_read_icc_profile() -> None: - with Image.open("Tests/images/flower.jxl") as im: + with Image.open("Tests/images/jxl/flower.jxl") as im: assert "icc_profile" in im.info def test_getxmp() -> None: - with Image.open("Tests/images/flower.jxl") as im: + with Image.open("Tests/images/jxl/flower.jxl") as im: assert "xmp" not in im.info if ElementTree is None: with pytest.warns( @@ -70,7 +70,7 @@ def test_getxmp() -> None: xmp = im.getxmp() assert xmp == {} - with Image.open("Tests/images/flower2.jxl") as im: + with Image.open("Tests/images/jxl/flower2.jxl") as im: if ElementTree is None: with pytest.warns( UserWarning, @@ -105,10 +105,10 @@ def test_4_byte_exif(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setattr(JpegXlImagePlugin, "_jpegxl", _mock_jpegxl) - with Image.open("Tests/images/hopper.jxl") as im: + with Image.open("Tests/images/jxl/hopper.jxl") as im: assert "exif" not in im.info def test_read_exif_metadata_empty() -> None: - with Image.open("Tests/images/hopper.jxl") as im: + with Image.open("Tests/images/jxl/hopper.jxl") as im: assert im.getexif() == {} diff --git a/src/PIL/JpegXlImagePlugin.py b/src/PIL/JpegXlImagePlugin.py index 62a6f4fa5..c4c2adac9 100644 --- a/src/PIL/JpegXlImagePlugin.py +++ b/src/PIL/JpegXlImagePlugin.py @@ -55,7 +55,8 @@ class JpegXlImageFile(ImageFile.ImageFile): self.info["exif"] = exif[exif_start_offset + 4 :] if xmp := self._decoder.get_xmp(): self.info["xmp"] = xmp - self.tile = [ImageFile._Tile("raw", (0, 0) + self.size, 0, self.mode)] + rawmode = "L" if self.mode == "1" else self.mode + self.tile = [ImageFile._Tile("raw", (0, 0) + self.size, 0, rawmode)] @property def n_frames(self) -> int: diff --git a/src/_jpegxl.c b/src/_jpegxl.c index e9c6284d4..a91a8c34e 100644 --- a/src/_jpegxl.c +++ b/src/_jpegxl.c @@ -14,21 +14,16 @@ void _jxl_get_pixel_format(JxlPixelFormat *pf, const JxlBasicInfo *bi) { pf->num_channels = bi->num_color_channels + bi->num_extra_channels; - - if (bi->exponent_bits_per_sample) { - pf->data_type = JXL_TYPE_FLOAT; - } else if (bi->bits_per_sample > 8) { - pf->data_type = JXL_TYPE_UINT16; - } else { - pf->data_type = JXL_TYPE_UINT8; - } - + pf->data_type = bi->bits_per_sample > 8 ? JXL_TYPE_UINT16 : JXL_TYPE_UINT8; pf->align = 0; } char * _jxl_get_mode(const JxlBasicInfo *bi) { if (bi->num_color_channels == 1 && !bi->alpha_bits) { + if (bi->bits_per_sample == 1) { + return "1"; + } if (bi->bits_per_sample == 16) { return "I;16"; } @@ -40,9 +35,6 @@ _jxl_get_mode(const JxlBasicInfo *bi) { if (bi->num_color_channels == 3) { return bi->alpha_premultiplied ? "RGBa" : "RGBA"; } - if (bi->num_color_channels == 1) { - return bi->alpha_premultiplied ? "La" : "LA"; - } } else { // image has no transparency if (bi->num_color_channels == 3) { @@ -290,7 +282,7 @@ decoder_loop_skip_process: realloc(final_jxl_buf, final_jxl_buf_len + compressed_box_size); if (!_new_jxl_buf) { PyErr_SetString(PyExc_OSError, "failed to allocate final_jxl_buf"); - goto end; + goto end_with_custom_error; } final_jxl_buf = _new_jxl_buf; diff --git a/src/libImaging/Unpack.c b/src/libImaging/Unpack.c index 203bcac2c..7456168b3 100644 --- a/src/libImaging/Unpack.c +++ b/src/libImaging/Unpack.c @@ -256,6 +256,14 @@ unpack18(UINT8 *out, const UINT8 *in, int pixels) { } } +static void +unpack1L(UINT8 *out, const UINT8 *in, int pixels) { + int i; + for (i = 0; i < pixels; i++) { + out[i] = in[i] > 128 ? 255 : 0; + } +} + /* Unpack to "L" image */ static void @@ -1564,6 +1572,7 @@ static struct { {IMAGING_MODE_1, IMAGING_RAWMODE_1_R, 1, unpack1R}, {IMAGING_MODE_1, IMAGING_RAWMODE_1_IR, 1, unpack1IR}, {IMAGING_MODE_1, IMAGING_RAWMODE_1_8, 8, unpack18}, + {IMAGING_MODE_1, IMAGING_RAWMODE_L, 8, unpack1L}, /* grayscale */ {IMAGING_MODE_L, IMAGING_RAWMODE_L_2, 2, unpackL2},