Skip to content

Commit

Permalink
Pad COLORMAP to 768 items
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Apr 21, 2022
1 parent c6637bc commit 1e3fdb3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Tests/test_file_libtiff.py
Expand Up @@ -497,8 +497,8 @@ def test_cmyk_save(self, tmp_path):
im.save(out, compression="tiff_adobe_deflate")
assert_image_equal_tofile(im, out)

def test_palette_save(self, tmp_path):
im = hopper("P")
@pytest.mark.parametrize("im", (hopper("P"), Image.new("P", (1, 1), "#000")))
def test_palette_save(self, im, tmp_path):
out = str(tmp_path / "temp.tif")

TiffImagePlugin.WRITE_LIBTIFF = True
Expand Down
7 changes: 6 additions & 1 deletion src/PIL/TiffImagePlugin.py
Expand Up @@ -1676,7 +1676,12 @@ def _save(im, fp, filename):

if im.mode in ["P", "PA"]:
lut = im.im.getpalette("RGB", "RGB;L")
ifd[COLORMAP] = tuple(v * 256 for v in lut)
colormap = []
colors = len(lut) // 3
for i in range(3):
colormap += [v * 256 for v in lut[colors * i : colors * (i + 1)]]
colormap += [0] * (256 - colors)
ifd[COLORMAP] = colormap
# data orientation
stride = len(bits) * ((im.size[0] * bits[0] + 7) // 8)
# aim for given strip size (64 KB by default) when using libtiff writer
Expand Down

0 comments on commit 1e3fdb3

Please sign in to comment.