设置GIF调色板位Python枕头,优化GIF

时间:2020-09-30 20:12:18

标签: python python-3.x optimization python-imaging-library

我正在尝试使用Python Pillow使GIF达到最优化(最小的文件大小,同时保持完整的质量)。我可以使用以下示例和代码来处理其PNG文件格式:

比方说,我的图像只有3种颜色,使用此代码,我可以拍摄该图像并大幅减少其文件大小:

from PIL import Image

# filename is given filename

# Example palette
my_palette = (20, 20, 20, 40, 40, 40, 200, 200, 200)

with Image.open(filename) as im:
    im = im.convert(mode='P', palette=my_palette, colors=3)
    im.save('MY_PNG.png', 'png', optimize=True, bits=2)
    im.close()

现在,GIF格式不包含bits参数,所以这是我能做的最好的事情:

from PIL import Image

# images is a list of open PIL.Image's, they each have been given the above treatment

my_palette = (20, 20, 20, 40, 40, 40, 200, 200, 200)

images[0].save('MY_GIF.gif', background=0, duration=100, loop=0, save_all=True, append_images=images[1:], palette=my_palette, optimize=True)

我知道这不是最优化的原因是,我可以在软件中打开该GIF,并看到它在索引调色板中可以保持100多种颜色。如果我手动删除这些多余/未使用的颜色,则可以将文件大小至少减小到枕头创建的GIF的25%。

所以我的问题是,如何使用Python Pillow(或其他库)创建更优化的GIF?

0 个答案:

没有答案