-1

我正在使用 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)
4

1 回答 1

1

要从不同大小的图像创建 gif,我们可以使用“moviepy.editor”并通过传递参数 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)
于 2019-10-29T14:29:32.190 回答