Skip to content

Commit

Permalink
Merge pull request #5396 from radarhere/mapdepth
Browse files Browse the repository at this point in the history
TGA color map entry size is only 1 byte
  • Loading branch information
hugovk committed Apr 18, 2021
2 parents 28eb578 + 04df6e3 commit 50fdc15
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
Binary file added Tests/images/200x32_p_bl_raw_origin.tga
Binary file not shown.
10 changes: 9 additions & 1 deletion Tests/test_file_tga.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from PIL import Image

from .helper import assert_image_equal, hopper
from .helper import assert_image_equal, assert_image_equal_tofile, hopper

_TGA_DIR = os.path.join("Tests", "images", "tga")
_TGA_DIR_COMMON = os.path.join(_TGA_DIR, "common")
Expand Down Expand Up @@ -112,6 +112,14 @@ def test_save_wrong_mode(tmp_path):
im.save(out)


def test_save_mapdepth():
# This image has been manually hexedited from 200x32_p_bl_raw.tga
# to include an origin
test_file = "Tests/images/200x32_p_bl_raw_origin.tga"
with Image.open(test_file) as im:
assert_image_equal_tofile(im, "Tests/images/tga/common/200x32_p.png")


def test_save_id_section(tmp_path):
test_file = "Tests/images/rgb32rle.tga"
with Image.open(test_file) as im:
Expand Down
2 changes: 1 addition & 1 deletion src/PIL/TgaImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ def _open(self):

if colormaptype:
# read palette
start, size, mapdepth = i16(s, 3), i16(s, 5), i16(s, 7)
start, size, mapdepth = i16(s, 3), i16(s, 5), s[7]
if mapdepth == 16:
self.palette = ImagePalette.raw(
"BGR;16", b"\0" * 2 * start + self.fp.read(2 * size)
Expand Down

0 comments on commit 50fdc15

Please sign in to comment.