mapdepth is only 1 byte

This commit is contained in:
Andrew Murray 2021-04-09 21:38:28 +10:00
parent b01fd46fe6
commit 04df6e3bf1
3 changed files with 10 additions and 2 deletions

Binary file not shown.

View File

@ -6,7 +6,7 @@ import pytest
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")
@ -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:

View File

@ -110,7 +110,7 @@ class TgaImageFile(ImageFile.ImageFile):
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)