python - PIL 合并 gifs

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

假设我有两张不同的动图

gif1 = Image.open(filename)
gif2 = Image.open(filename)

有什么办法可以将它们合并在一起吗?或者喜欢将它们堆叠在一起?

python python-imaging-library gif
2个回答
0
投票
from PIL import Image, ImageSequence 
import sys, os 
filename = sys.argv[1] 
im = Image.open(filename) 
original_duration = im.info['duration'] 
frames = [frame.copy() for frame in ImageSequence.Iterator(im)] frames.reverse() 
from images2gif import writeGif 
writeGif("reverse_" + os.path.basename(filename), frames, duration=original_duration/1000.0, dither=0)

我认为这是解决方案或可以接近你想要实现的目标


0
投票

实际上,我刚刚实现了合并两个 GIF,就像通过 PIL 从 png 文件创建 GIF 一样。

示例代码:

import os
from PIL import Image

gif = []

# Assuming you have a directory that includes only your GIFs
img_list = os.listdir()
# OPTIONAL: Sort them according to their file names
img_list.sort()
for image in img_list: append(Image.open(image))

gif[0].save('merged.gif', save_all=True,
            optimize=False, append_images=gif[1:],
            loop=10, duration=300)

希望有帮助。

最好的, 莱纳斯

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