Python调整动画GIF大小的问题

1 投票
1 回答
2065 浏览
提问于 2025-04-15 23:04

我想要调整一个动画GIF的大小,并且保持它的动画效果。我尝试使用PIL和PythonMagickWand(ImageMagick),但是在处理某些GIF时,出现了坏帧的问题。当我使用PIL时,它在读取帧的时候就出错了。为了测试,我使用了这段代码:

from PIL import Image  
im = Image.open('d:/box_opens_closes.gif')
im.seek(im.tell()+1)
im.seek(im.tell()+1)
im.seek(im.tell()+1)
im.show()

当我用MagickWand和这段代码时:

wand = NewMagickWand()
MagickReadImage(wand, 'd:/Box_opens_closes.gif')
MagickSetLastIterator(wand)
length = MagickGetIteratorIndex(wand)
MagickSetFirstIterator(wand)
for i in range(0, length+1):
    MagickSetIteratorIndex(wand,i)
    MagickScaleImage(wand, 87, 58)  
MagickWriteImages(wand, 'path', 1)

我遇到坏帧的GIF是这个:测试GIF

在GIF编辑软件中,所有的帧都是正常的。问题出在哪里呢?谢谢。

1 个回答

0

我完成这个了。必须使用:


wand2 = MagickCoalesceImages(wand)
MagickWriteImages(wand2, 'save_path', 1)

撰写回答