调整动画 GIF 大小的 Python 问题

Posted

技术标签:

【中文标题】调整动画 GIF 大小的 Python 问题【英文标题】:Python problem with resize animate GIF 【发布时间】:2011-02-23 04:09:26 【问题描述】:

我想通过保存动画来调整动画 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 框架如下:test gif

在 GIF 编辑软件中,所有帧都可以。问题出在哪里?谢谢。

【问题讨论】:

坏帧是什么样子的? 错误结果示例:i46.tinypic.com/4qgdx5.gif 【参考方案1】:

我已经完成了。必须使用:


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

【讨论】:

以上是关于调整动画 GIF 大小的 Python 问题的主要内容,如果未能解决你的问题,请参考以下文章

在不破坏动画的情况下调整动画 GIF 文件的大小

如何使用 ImageMagick (php) 调整动画 gif 的大小?

GIF动画TImage / Timage32

Imagick 制作动画 GIF 不动画?

逐帧调整动画 UIImage 的大小非常慢

没有 Imagick 的图像调整大小并失去透明度