如何在Python中从不同大小的图像(.png)创建gif



我正在使用ImageIO创建一个.gif文件。我有3个不同大小的.png图像:

(width, length, rgb)
(2520, 1800, 3)
(3840, 1800, 3)
(1800, 1800, 3)

由于可见,第二个图像太宽,超出了帧。是否可以固定.gif的边框大小,使其能够容纳所有三个图像的尺寸?

目前,它正在将第一张图像的尺寸分配给gif文件。

这是代码:

images = []
for filename in sorted(image_files):
image = imageio.imread(filename)
images.append(image)
imageio.mimsave('file.gif',images, duration=1)

要从不同大小的图像创建gif,我们可以使用"moviepy.editor"并通过传递argument method="compose"来连接图像。

method="compose"保留每个图像(帧(的尺寸,并创建一个具有最大高度和宽度的帧的gif文件。

这是代码:

def make_gif():
input_png_list = glob.glob(infile+'/*.png')
input_png_list.sort()
clips = [mpy.ImageClip(i).set_duration(self.duration)
for i in input_png_list]
concat_clip = mpy.concatenate_videoclips(clips, method="compose")
concat_clip.write_gif("test.gif", fps=2)

最新更新