mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Revert little-endian byte order for "I" and "F" rawmodes
This commit is contained in:
		
							parent
							
								
									922407e7f3
								
							
						
					
					
						commit
						aac0869ca7
					
				| 
						 | 
					@ -146,31 +146,34 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
        self.assert_pack("HSV", "V", 1, (9,9,1), (9,9,2), (9,9,3))
 | 
					        self.assert_pack("HSV", "V", 1, (9,9,1), (9,9,2), (9,9,3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_I(self):
 | 
					    def test_I(self):
 | 
				
			||||||
        self.assert_pack("I", "I", 4, 0x04030201, 0x08070605)
 | 
					 | 
				
			||||||
        self.assert_pack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
					        self.assert_pack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
				
			||||||
        self.assert_pack("I", "I;32S",
 | 
					        self.assert_pack("I", "I;32S",
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
				
			||||||
            0x01000083, -2097151999)
 | 
					            0x01000083, -2097151999)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
 | 
					            self.assert_pack("I", "I", 4, 0x04030201, 0x08070605)
 | 
				
			||||||
            self.assert_pack("I", "I;32NS",
 | 
					            self.assert_pack("I", "I;32NS",
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
				
			||||||
                0x01000083, -2097151999)
 | 
					                0x01000083, -2097151999)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
 | 
					            self.assert_pack("I", "I", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
            self.assert_pack("I", "I;32NS",
 | 
					            self.assert_pack("I", "I;32NS",
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
				
			||||||
                -2097151999, 0x01000083)
 | 
					                -2097151999, 0x01000083)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_F_float(self):
 | 
					    def test_F_float(self):
 | 
				
			||||||
        self.assert_pack("F", "F", 4,
 | 
					 | 
				
			||||||
            1.539989614439558e-36, 4.063216068939723e-34)
 | 
					 | 
				
			||||||
        self.assert_pack("F", "F;32F", 4,
 | 
					        self.assert_pack("F", "F;32F", 4,
 | 
				
			||||||
            1.539989614439558e-36, 4.063216068939723e-34)
 | 
					            1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
 | 
					            self.assert_pack("F", "F", 4,
 | 
				
			||||||
 | 
					                1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
            self.assert_pack("F", "F;32NF", 4,
 | 
					            self.assert_pack("F", "F;32NF", 4,
 | 
				
			||||||
                1.539989614439558e-36, 4.063216068939723e-34)
 | 
					                1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
 | 
					            self.assert_pack("F", "F", 4,
 | 
				
			||||||
 | 
					                2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
            self.assert_pack("F", "F;32NF", 4,
 | 
					            self.assert_pack("F", "F;32NF", 4,
 | 
				
			||||||
                2.387939260590663e-38, 6.301941157072183e-36)
 | 
					                2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,10 +87,12 @@ class TestModeI16(PillowTestCase):
 | 
				
			||||||
        def tobytes(mode):
 | 
					        def tobytes(mode):
 | 
				
			||||||
            return Image.new(mode, (1, 1), 1).tobytes()
 | 
					            return Image.new(mode, (1, 1), 1).tobytes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        order = 1 if Image._ENDIAN == '<' else -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.assertEqual(tobytes("L"), b"\x01")
 | 
					        self.assertEqual(tobytes("L"), b"\x01")
 | 
				
			||||||
        self.assertEqual(tobytes("I;16"), b"\x01\x00")
 | 
					        self.assertEqual(tobytes("I;16"), b"\x01\x00")
 | 
				
			||||||
        self.assertEqual(tobytes("I;16B"), b"\x00\x01")
 | 
					        self.assertEqual(tobytes("I;16B"), b"\x00\x01")
 | 
				
			||||||
        self.assertEqual(tobytes("I"), b"\x01\x00\x00\x00")
 | 
					        self.assertEqual(tobytes("I"), b"\x01\x00\x00\x00"[::order])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_convert(self):
 | 
					    def test_convert(self):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -599,13 +599,13 @@ static struct {
 | 
				
			||||||
    {"HSV",     "V",           8,      band2},
 | 
					    {"HSV",     "V",           8,      band2},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* integer */
 | 
					    /* integer */
 | 
				
			||||||
    {"I",       "I",            32,     packI32S},
 | 
					    {"I",       "I",            32,     copy4},
 | 
				
			||||||
    {"I",       "I;16B",        16,     packI16B},
 | 
					    {"I",       "I;16B",        16,     packI16B},
 | 
				
			||||||
    {"I",       "I;32S",        32,     packI32S},
 | 
					    {"I",       "I;32S",        32,     packI32S},
 | 
				
			||||||
    {"I",       "I;32NS",       32,     copy4},
 | 
					    {"I",       "I;32NS",       32,     copy4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* floating point */
 | 
					    /* floating point */
 | 
				
			||||||
    {"F",       "F",            32,     packI32S},
 | 
					    {"F",       "F",            32,     copy4},
 | 
				
			||||||
    {"F",       "F;32F",        32,     packI32S},
 | 
					    {"F",       "F;32F",        32,     packI32S},
 | 
				
			||||||
    {"F",       "F;32NF",       32,     copy4},
 | 
					    {"F",       "F;32NF",       32,     copy4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1176,6 +1176,8 @@ static struct {
 | 
				
			||||||
       endian byte order (default is little endian); "L" line
 | 
					       endian byte order (default is little endian); "L" line
 | 
				
			||||||
       interleave, "S" signed, "F" floating point */
 | 
					       interleave, "S" signed, "F" floating point */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* exception: rawmodes "I" and "F" are always native endian byte order */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* bilevel */
 | 
					    /* bilevel */
 | 
				
			||||||
    {"1",       "1",            1,      unpack1},
 | 
					    {"1",       "1",            1,      unpack1},
 | 
				
			||||||
    {"1",       "1;I",          1,      unpack1I},
 | 
					    {"1",       "1;I",          1,      unpack1I},
 | 
				
			||||||
| 
						 | 
					@ -1318,7 +1320,7 @@ static struct {
 | 
				
			||||||
    {"HSV",  	"V",            8,      band2},
 | 
					    {"HSV",  	"V",            8,      band2},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* integer variations */
 | 
					    /* integer variations */
 | 
				
			||||||
    {"I",       "I",            32,     unpackI32},
 | 
					    {"I",       "I",            32,     copy4},
 | 
				
			||||||
    {"I",       "I;8",          8,      unpackI8},
 | 
					    {"I",       "I;8",          8,      unpackI8},
 | 
				
			||||||
    {"I",       "I;8S",         8,      unpackI8S},
 | 
					    {"I",       "I;8S",         8,      unpackI8S},
 | 
				
			||||||
    {"I",       "I;16",         16,     unpackI16},
 | 
					    {"I",       "I;16",         16,     unpackI16},
 | 
				
			||||||
| 
						 | 
					@ -1335,7 +1337,7 @@ static struct {
 | 
				
			||||||
    {"I",       "I;32NS",       32,     unpackI32NS},
 | 
					    {"I",       "I;32NS",       32,     unpackI32NS},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* floating point variations */
 | 
					    /* floating point variations */
 | 
				
			||||||
    {"F",       "F",            32,     unpackI32},
 | 
					    {"F",       "F",            32,     copy4},
 | 
				
			||||||
    {"F",       "F;8",          8,      unpackF8},
 | 
					    {"F",       "F;8",          8,      unpackF8},
 | 
				
			||||||
    {"F",       "F;8S",         8,      unpackF8S},
 | 
					    {"F",       "F;8S",         8,      unpackF8S},
 | 
				
			||||||
    {"F",       "F;16",         16,     unpackF16},
 | 
					    {"F",       "F;16",         16,     unpackF16},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user