有时,当打开GIF并将单独的帧保存到文件时,框架的形状会很糟糕.所有的GIF都不会发生这种情况,但是在许多帧中会发生这种情况.
例
这是原来的GIF
这是第一帧(好了)
这是第二帧(拧出来的)
我用两个不同的python模块尝试了同样的事情.第一个PIL
from PIL import Image
img = Image.open('pigs.gif')
counter = 0
collection = []
while True:
try:
img.save('original%d.gif' % counter)
img.seek(img.tell()+1)
counter += 1
except EOFError:
break
Run Code Online (Sandbox Code Playgroud)
然后魔杖:
from wand.image import Image
img = Image(filename='pigs.gif')
for i in range(len(img.sequence)):
img2 = Image(img.sequence[i])
img2.save(filename='original%d.gif' % i)
Run Code Online (Sandbox Code Playgroud)
两个模块也是如此.
这是怎么回事?
PS:我发现其他人有相同的症状.然而,这些解决方案(两者都围绕PIL的错误,当你执行.seek()时删除调色板)并没有解决我的问题: Python:将GIF帧转换为PNG 和 PIL - 将GIF帧转换为JPG
在gif中,帧可以仅包含在该帧中改变的像素.因此,当您导出时,在没有变化的情况下变黑.
from PIL import Image
img = Image.open('pigs.gif')
counter = 0
collection = []
current = img.convert('RGBA')
while True:
try:
current.save('original%d.png' % counter)
img.seek(img.tell()+1)
current = Image.alpha_composite(current, img.convert('RGBA'))
counter += 1
except EOFError:
break
Run Code Online (Sandbox Code Playgroud)
编辑:由于颜色调色板问题而在评论中建议将输出格式更改为png.
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |