PIL 无法将 GIF 的循环设置为 1

问题描述 投票:0回答:1

我正在尝试转换 gif,首先将其裁剪,然后将其转换为仅循环一次的 gif。当我使用 Microsoft“照片”应用程序时,它仅循环一次。然而,当在 html 页面上时,它会循环两次。 我尝试过更改

loop = 0
,但它使循环变得无限。

这是我正在使用的代码:

from PIL import Image, ImageSequence
input_gif = "input.gif"
output_gif = "output.gif"

crop_box = (0, 0, 300, 500)  # (left, upper, right, lower)

with Image.open(input_gif) as gif:
    frames = []

    for frame in ImageSequence.Iterator(gif):
        cropped_frame = frame.crop(crop_box)
        frames.append(cropped_frame)

    frames[0].save(
        output_gif,
        save_all=True,
        append_images=frames[1:],
        loop=1,
        duration=gif.info.get("duration", 100),
    )

print("GIF cropped and saved successfully!")
python-imaging-library gif animated-gif
1个回答
0
投票

PIL 的

loop = 1
使其总共循环两次,
loop = 2
循环三次,依此类推。

要让它只循环一次,请完全删除

loop
的参数,它默认为一次。

© www.soinside.com 2019 - 2024. All rights reserved.