我正在尝试转换 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!")
PIL 的
loop = 1
使其总共循环两次,loop = 2
循环三次,依此类推。
要让它只循环一次,请完全删除
loop
的参数,它默认为一次。