Skip to content

Commit

Permalink
Merge pull request #6391 from radarhere/pcx
Browse files Browse the repository at this point in the history
Pad PCX palette to 768 bytes when saving
  • Loading branch information
hugovk committed Jun 23, 2022
2 parents e6b7730 + 317286d commit e774be0
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
5 changes: 5 additions & 0 deletions Tests/test_file_pcx.py
Expand Up @@ -20,6 +20,11 @@ def test_sanity(tmp_path):
for mode in ("1", "L", "P", "RGB"):
_roundtrip(tmp_path, hopper(mode))

# Test a palette with less than 256 colors
im = Image.new("P", (1, 1))
im.putpalette((255, 0, 0))
_roundtrip(tmp_path, im)

# Test an unsupported mode
f = str(tmp_path / "temp.pcx")
im = hopper("RGBA")
Expand Down
4 changes: 3 additions & 1 deletion src/PIL/PcxImagePlugin.py
Expand Up @@ -198,7 +198,9 @@ def _save(im, fp, filename):
if im.mode == "P":
# colour palette
fp.write(o8(12))
fp.write(im.im.getpalette("RGB", "RGB")) # 768 bytes
palette = im.im.getpalette("RGB", "RGB")
palette += b"\x00" * (768 - len(palette))
fp.write(palette) # 768 bytes
elif im.mode == "L":
# greyscale palette
fp.write(o8(12))
Expand Down

0 comments on commit e774be0

Please sign in to comment.