水平组合多个 GIF - python

Mos*_*ein 6 python image gif python-imageio

我有两个 GIF 文件,我想将它们水平组合在一起显示,并一起播放。它们具有相同的框架。我在网上尝试了很多解决方案,但没有找到支持 GIF 的东西。我认为该imageio包支持 gif,但我找不到用它来将两个组合在一起的方法 简单地说,我想要这样的例子 在此处输入图片说明 这样做的任何想法?

小智 4

我会编写这样的代码:

import imageio
import numpy as np    

#Create reader object for the gif
gif1 = imageio.get_reader('file1.gif')
gif2 = imageio.get_reader('file2.gif')

#If they don't have the same number of frame take the shorter
number_of_frames = min(gif1.get_length(), gif2.get_length()) 

#Create writer object
new_gif = imageio.get_writer('output.gif')

for frame_number in range(number_of_frames):
    img1 = gif1.get_next_data()
    img2 = gif2.get_next_data()
    #here is the magic
    new_image = np.hstack((img1, img2))
    new_gif.append_data(new_image)

gif1.close()
gif2.close()    
new_gif.close()
Run Code Online (Sandbox Code Playgroud)

所以神奇的技巧是使用 hstack numpy 函数。它基本上会水平堆叠它们。仅当两个 gif 尺寸相同时,此方法才有效。