使用Wand + ImageMagick调整GIF大小

3
我正在使用Wand 0.3.7ImageMagick 6.8.8-10来批量调整一些动画GIF文件的大小。但由于某种原因,Wand只调整图像中的一个帧,而将其余帧保留在原始大小。

这是我想要调整大小的原始图片:

Original image

这是来自Wand的输出:

Resized with Wand

如果我直接从命令行使用ImageMagick(按照这里的说明),则GIF会被正确地调整大小,如预期所示:

Resized with ImageMagick

这是我当前正在使用的调整图像大小的方法:

with Image(filename="src.gif") as img:
    img.resize(50, 50)
    img.save("dest.gif")

我还尝试遍历每个帧并逐个调整它们的大小:

with Image(filename="src.gif") as img:
    for frame in img.sequence:
        frame.resize(50, 50)
        frame.destroy()
    img.save("dest.gif")

两者产生的结果如上所示,我做错了什么?


可能是 http://stackoverflow.com/questions/2896031/python-problem-with-resize-animate-gif 的重复问题。 - Selcuk
1个回答

0
你可以尝试打开一个新的目标Image并将每一帧循环到其中:
with Image() as dst_image:
    with Image(filename=src_path) as src_image:
        for frame in src_image.sequence:
            frame.resize(x, y)
            dst_image.sequence.append(frame)
    dst_image.save(filename=dst_path)

对我来说可行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接