【问题标题】:Transparency is not working for gifs in pil透明度不适用于 pil 中的 gif
【发布时间】:2021-07-07 05:07:28
【问题描述】:

我正在尝试制作一个脚本来获取和输入图像并将其淡出。到目前为止,这是我的脚本

imgObject = im.open(imageName)
toAppend = []

for i in range(int(256)):
    imgObject.putalpha(i)
    toAppend.append(imgObject)
    #imgObject.save('images/'+str(i)+'.png', 'PNG')

imgObject.save('finished.gif', save_all=True, append_images=toAppend)

运行时,输出 gif 只是输入的静止图像,没有任何变化。但是,如果我将每个图像保存为 png,那么透明度就可以了!它保存了 255 张不同的图像,您可以在其中看到它的淡出。事后我也尝试将这些照片拼接在一起,但出现了相同或相似的问题。 我也试过thisthisthisthis。都产生相同的效果。

【问题讨论】:

  • GIF 不能有“平滑的透明度”,像素可以是完全透明的或不透明的,参见。 this Q&A.
  • 好吧,我的最终目标是让它淡入另一个图像,那么如果它下面的图像完全不透明,它会起作用吗?如果是这样,您将如何将 2 张图像叠加在一起?

标签: python-imaging-library gif alpha


【解决方案1】:

阅读更多文档并找到这个

imgObject = im.open(imageName)
bpiObject = im.open(backroundName)
toAppend = []

for i in range(100):
    imgObject = im.blend(imgObject, bpiObject, i/100)
    toAppend.append(imgObject)

imgObject.save('finished.gif', save_all=True, append_images=toAppend, loop = 0)

这对我有用,但它们必须具有相同的尺寸

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2010-12-31
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多