Merge pull request #6231 from radarhere/bmp_compression

Ignore compression value from BMP info dictionary when saving as TIFF
This commit is contained in:
Hugo van Kemenade 2022-05-20 16:18:15 +03:00 committed by GitHub
commit 33f00c9ca8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -715,6 +715,13 @@ class TestFileTiff:
with Image.open(outfile) as reloaded:
assert reloaded.info["icc_profile"] == icc_profile
def test_save_bmp_compression(self, tmp_path):
with Image.open("Tests/images/hopper.bmp") as im:
assert im.info["compression"] == 0
outfile = str(tmp_path / "temp.tif")
im.save(outfile)
def test_discard_icc_profile(self, tmp_path):
outfile = str(tmp_path / "temp.tif")

View File

@ -1559,7 +1559,13 @@ def _save(im, fp, filename):
encoderinfo = im.encoderinfo
encoderconfig = im.encoderconfig
compression = encoderinfo.get("compression", im.info.get("compression"))
try:
compression = encoderinfo["compression"]
except KeyError:
compression = im.info.get("compression")
if isinstance(compression, int):
# compression value may be from BMP. Ignore it
compression = None
if compression is None:
compression = "raw"
elif compression == "tiff_jpeg":