使用Wand和ImageMagick调整GIF大小

3 投票
1 回答
1204 浏览
提问于 2025-04-18 02:22

我正在使用Wand 0.3.7ImageMagick 6.8.8-10来批量调整一些动图的大小。但是不知为什么,Wand只调整了图像中的一帧,其他帧的大小保持不变。

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

原始图像

这是Wand处理后的输出:

用Wand调整大小

如果我直接在命令行中使用ImageMagick(按照这里的说明),动图会被正确地调整大小,效果如预期:

用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")

但这两种方法的结果都是一样的,都是上面看到的效果。我到底哪里做错了呢?

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)

这样对我有效。

撰写回答