python生成gif

import os

import numpy as np
from PIL import Image, ImageFont
from PIL import ImageDraw

import pandas
def make_gif(paths, gif_path, max_frame=50, prefix=""):
    import imageio
    paths=paths+"/"+pandas.DataFrame(os.listdir(paths))
    paths=paths.values.tolist()
    pa=[]
    for pat in paths:
        if "png" in pat[0]:
            pa.append(pat[0])
    skip_frame = len(pa) // max_frame
    pa = pa[::skip_frame+1]

    images = [imageio.imread(path) for path in pa]
    max_h, max_w, max_c = np.max(
            np.array([image.shape for image in images]), 0)

    for idx, image in enumerate(images):
        h, w, c = image.shape
        blank = np.ones([max_h, max_w, max_c], dtype=np.uint8) * 255

        pivot_h, pivot_w = (max_h-h)//2, (max_w-w)//2
        blank[pivot_h:pivot_h+h,pivot_w:pivot_w+w,:c] = image

        images[idx] = blank

    try:
        imagess = []
        for image in images:
            imagess.append(Image.fromarray(image))
        draws=[]
        for image in imagess:
            draws.append(ImageDraw.Draw(image))
        font = ImageFont.truetype("assets/arial.ttf", 30)


        for step, draw in enumerate(draws):
            draw.text((max_h//20, max_h//20),
                      f"{prefix}step: {format(step, ',d')}", (0, 0, 0), font=font)
    except IndexError:
        pass
    imageio.mimsave(gif_path, [np.array(img) for img in images], duration=0.5)


if __name__ == '__main__':
    make_gif("/home/chenyang/PycharmProjects/ENAS-pytorch-master/logs/ptb_2020-04-15_10-00-07/networks","s.gif" , max_frame=50, prefix="")

发布了285 篇原创文章 · 获赞 89 · 访问量 248万+

猜你喜欢

转载自blog.csdn.net/weixin_32759777/article/details/105531237
今日推荐