水平合并几个GIF-python

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

我有两个GIF文件,我想水平组合它们以使其彼此并排显示,然后它们一起播放。他们有相等的框架。我在网上尝试了很多解决方案,但没有找到支持GIF的功能。我认为imageio包支持gif,但是我找不到使用它来将两者结合在一起的方法简而言之,我想要类似此示例的内容enter image description here有任何想法吗?

python image gif python-imageio
1个回答
0
投票

我会这样编码:

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_writter('output.gif')

for frame_number in range(number_of_frame):
    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()

所以魔术技巧是使用hstack numpy函数。基本上将它们水平堆叠。这仅在两个gif尺寸相同时才有效。

干杯,R。

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