mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-27 02:16:19 +03:00
Added support for top right and bottom right orientations
This commit is contained in:
parent
24f0bbf5ec
commit
fc90a9285a
BIN
Tests/images/rgb32rle_bottom_right.tga
Normal file
BIN
Tests/images/rgb32rle_bottom_right.tga
Normal file
Binary file not shown.
BIN
Tests/images/rgb32rle_top_right.tga
Normal file
BIN
Tests/images/rgb32rle_top_right.tga
Normal file
Binary file not shown.
|
@ -171,6 +171,15 @@ def test_save_orientation(tmp_path):
|
||||||
assert test_im.info["orientation"] == 1
|
assert test_im.info["orientation"] == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_horizontal_orientations():
|
||||||
|
# These images have been manually hexedited to have the relevant orientations
|
||||||
|
with Image.open("Tests/images/rgb32rle_top_right.tga") as im:
|
||||||
|
assert im.load()[90, 90][:3] == (0, 0, 0)
|
||||||
|
|
||||||
|
with Image.open("Tests/images/rgb32rle_bottom_right.tga") as im:
|
||||||
|
assert im.load()[90, 90][:3] == (0, 255, 0)
|
||||||
|
|
||||||
|
|
||||||
def test_save_rle(tmp_path):
|
def test_save_rle(tmp_path):
|
||||||
test_file = "Tests/images/rgb32rle.tga"
|
test_file = "Tests/images/rgb32rle.tga"
|
||||||
with Image.open(test_file) as im:
|
with Image.open(test_file) as im:
|
||||||
|
|
|
@ -93,9 +93,10 @@ class TgaImageFile(ImageFile.ImageFile):
|
||||||
|
|
||||||
# orientation
|
# orientation
|
||||||
orientation = flags & 0x30
|
orientation = flags & 0x30
|
||||||
if orientation == 0x20:
|
self._flip_horizontally = orientation in [0x10, 0x30]
|
||||||
|
if orientation in [0x20, 0x30]:
|
||||||
orientation = 1
|
orientation = 1
|
||||||
elif not orientation:
|
elif orientation in [0, 0x10]:
|
||||||
orientation = -1
|
orientation = -1
|
||||||
else:
|
else:
|
||||||
raise SyntaxError("unknown TGA orientation")
|
raise SyntaxError("unknown TGA orientation")
|
||||||
|
@ -149,6 +150,10 @@ class TgaImageFile(ImageFile.ImageFile):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass # cannot decode
|
pass # cannot decode
|
||||||
|
|
||||||
|
def load_end(self):
|
||||||
|
if self._flip_horizontally:
|
||||||
|
self.im = self.im.transpose(Image.FLIP_LEFT_RIGHT)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user