Как создать GIF из изображений разных размеров (.png) в Python - PullRequest
0 голосов
/ 24 октября 2019

Я использую ImageIO для создания GIF-файла. У меня есть 3 .png изображения с различными размерами:

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

Поскольку видно, что 2-е изображение слишком широкое и выходит из кадра. Можно ли зафиксировать размер кадра .gif, чтобы он мог вместить размеры всех трех изображений?

В настоящее время он присваивает размеры 1-го изображения gif-файлу.

Вот код:

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

1 Ответ

0 голосов
/ 29 октября 2019

Чтобы создать gif из изображений разных размеров, мы можем использовать «moviepy.editor» и объединить изображения, передав аргумент method = «compose».

method = «compose» сохраняет размер каждого изображения(frame) и создает 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)
...