From 55e2569a077b6c689baf4ff88ef64fbd490768a2 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 21 Dec 2021 14:48:13 +1100 Subject: [PATCH] Fixed I;16 conversion on big endian --- Tests/test_file_png.py | 2 -- src/libImaging/Convert.c | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Tests/test_file_png.py b/Tests/test_file_png.py index 9a5577bbac0..0869cc58bc5 100644 --- a/Tests/test_file_png.py +++ b/Tests/test_file_png.py @@ -13,7 +13,6 @@ assert_image_equal, assert_image_equal_tofile, hopper, - is_big_endian, is_win32, mark_if_feature_version, skip_unless_feature, @@ -77,7 +76,6 @@ def get_chunks(self, filename): png.crc(cid, s) return chunks - @pytest.mark.xfail(is_big_endian(), reason="Fails on big-endian") def test_sanity(self, tmp_path): # internal version number diff --git a/src/libImaging/Convert.c b/src/libImaging/Convert.c index 9012cfcd74b..f4e970f51ba 100644 --- a/src/libImaging/Convert.c +++ b/src/libImaging/Convert.c @@ -963,10 +963,17 @@ static struct { {"HSV", "RGB", hsv2rgb}, +#ifdef WORDS_BIGENDIAN + {"I", "I;16", I_I16B}, + {"I;16", "I", I16B_I}, + {"L", "I;16", L_I16B}, + {"I;16", "L", I16B_L}, +#else {"I", "I;16", I_I16L}, {"I;16", "I", I16L_I}, {"L", "I;16", L_I16L}, {"I;16", "L", I16L_L}, +#endif {"I", "I;16L", I_I16L}, {"I;16L", "I", I16L_I},