handshake to set compress_level to minimum if save() is called from show()

The last in a series of changes to fix
https://github.com/python-pillow/Pillow/issues/2508
This commit is contained in:
Hin-Tak Leung 2017-05-10 05:37:47 +01:00
parent dc542cb0e6
commit f79cbe81c9
2 changed files with 4 additions and 0 deletions

View File

@ -71,6 +71,7 @@ class Viewer(object):
base = Image.getmodebase(image.mode)
if base != image.mode and image.mode != "1" and image.mode != "RGBA":
image = image.convert(base)
image.info['showing'] = True
return self.show_image(image, **options)

View File

@ -687,6 +687,9 @@ def _save(im, fp, filename, chunk=putchunk, check=0):
mode = "%s;%d" % (mode, bits)
# encoder options
if (im.info.get('showing', False)):
im.encoderinfo['compress_level'] = 1
im.info.pop('showing', None)
im.encoderconfig = (im.encoderinfo.get("optimize", False),
im.encoderinfo.get("compress_level", -1),
im.encoderinfo.get("compress_type", -1),