【教学类-37-01】20230704Python制作GIF图片(一次循环和无限循环)

效果展示:

(无限循环)

背景需求:

使用PPT制作Mid Jounery表情表,原始图片会基于PPt页面调整而缩小一半,且只适合白背景图案,设置耗时,需要2个软件进行转换……并不是很方便。

通过Python检索,找到了一个非常好用的“python生成GIF动图”的代码。

材料准备:

Stable Diffusion 图生图,批量生成25张图片

 

 下载的打包文件修改名字(图片是PNG格式的)

 代码展示

# 用Python将多张png制作成gif(无限循环)

import imageio
from pathlib import Path
'''CMD 安装pip install imageio'''

address=input('请输入桌面上的文件夹名字\n')

# https://blog.csdn.net/qq_42886289/article/details/115911308?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E5%88%B6%E4%BD%9Cgif%E5%8A%A8%E5%9B%BE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-115911308.nonecase&spm=1018.2226.3001.4187

def imgs2gif(imgPaths, saveName, duration=None, loop=0, fps=None):
    """
    生成动态图片 格式为 gif
    :param imgPaths: 一系列图片路径
    :param saveName: 保存gif的名字
    :param duration: gif每帧间隔, 单位 秒
    :param fps: 帧率
    :param loop: 播放次数(在不同的播放器上有所区别), 0代表循环播放
    :return:
    """
    if fps:
        duration = 1 / fps
    images = [imageio.imread(str(img_path)) for img_path in imgPaths]
    imageio.mimsave(saveName, images, "gif", duration=duration, loop=loop)


pathlist = Path(r"C:\Users\jg2yXRZ\OneDrive\桌面\{}".format(address)).glob("*.png")

p_lis = []
for n, p in enumerate(pathlist):
    if n % 5 == 0:
        p_lis.append(p)

# 生成循环GIF和一次GIf        

imgs2gif(p_lis, r"C:\Users\jg2yXRZ\OneDrive\桌面\{}\0{}_无限循环.gif".format(address,address), 0.033 * 5, 0)
imgs2gif(p_lis, r"C:\Users\jg2yXRZ\OneDrive\桌面\{}\1{}_一次循环.gif".format(address,address), 0.033 * 5, 1)

终端运行

输入文件名

4秒生成两个GIF

 第1款:无限循环的gif

  第2款:一次循环的gif

可以修改参数:0是无限循环,改成1等于1次循环,改成2等于2次循环、3次循环

修改间隔时间:0.033改成其他数字,控制换片速度

 感悟:

这种Python制作GIFPPT做MP4转GIF的方法相比,简直又快有方便,还能实现需求(速度、循环量),简直太方便!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值