2
有時,當打開gif並將單獨的框架保存到文件時,框架出現不良形狀。這不會發生在所有的gif中,但與那些發生在許多幀中的情況不同。用蟒蛇打開的Gif有破碎的框架
例
這裏的原始GIF
這裏的第一個幀(出來OK)
這裏的第二幀(弄出來擰)
我試着用兩個不同的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
然後魔杖:
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)
和同樣的情況,這兩個模塊。
發生了什麼事?
P.S .: 我發現其他人有相同的症狀。然而,這些解決方案(兩者都圍繞着它刪除調色板PIL的一個bug,當你做.seek())並沒有解決我的問題: Python: Converting GIF frames to PNG 和 PIL - Convert GIF Frames to JPG
嗨!謝謝,但那不是整個故事。它修復了缺失的部分,所以我猜這裏有一些你說的事實,但它仍然出錯,雖然以不同的方式: http://imgur.com/rham3RW – oneloop
嗨,我還在玩這個和我注意到如果你保存的圖像是PNG,這種方法實際上是完美的。因此,如果您將您的代碼更改爲current.save('original0%d.png'%counter,'PNG'),我將接受此答案爲正確的。 順便說一句,似乎保存爲PNG比保存爲gif慢得多。這是爲什麼?你知道如何將它保存爲gif,使其更快? – oneloop
我創建了另一個問題,如果你感興趣:http://stackoverflow.com/questions/21996710/more-problems-extracting-frames-from-gifs – oneloop