【发布时间】:2020-04-30 22:21:42
【问题描述】:
以下代码从两个图像创建一个 GIF:
# GIFs are always palette images so they would be converted later anyway
im1 = PIL.Image.open('grin-emoji-by-twitter-rgba.png').convert('P')
im2 = PIL.Image.open('grin-emoji-by-twitter-rgba-2.png').convert('P')
im1.save('output.gif', save_all=True, append_images=[im2, im1, im2], loop=0, duration=200, transparency=255)
但是结果出乎意料地错误。第一帧很好,但后续帧在更新区域周围包含一个黑色矩形而不是透明度:
在我看来,错误如下:在第一张图像上,我们将索引 255 指定为完全透明颜色的索引。然而,save 函数似乎只在第一帧将索引 255 转换为透明度,但在所有其他帧上跳过这一步。
有什么办法可以避免吗?
【问题讨论】:
标签: python python-imaging-library transparency animated-gif