【问题标题】:How to create gif from different sized images(.png) in Python如何在 Python 中从不同大小的图像(.png)创建 gif
【发布时间】:2020-02-20 23:16:43
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 Stackoverflow!我们很难在没有看到您正在使用的代码的情况下提出解决方案!请将您的代码添加到问题帖子中,并明确说明您认为需要更改的代码部分。

标签: python gif python-imageio


【解决方案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-20
    • 2010-10-24
    • 2020-07-25
    • 2014-11-27
    • 2016-10-13
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2015-01-26
    相关资源
    最近更新 更多