|
本帖最后由 snljty 于 2022-2-17 16:43 编辑
这些功能用Linux下的convert命令等都能转换,但后者有些涉及图片大小变换等功能设置不合适的时候往往会很慢。VideoMach可以把多帧图片做成动画,但免费版有水印。另外ffmpeg也是一个选择,暂且不提。
两者分别需要imageio和pillow库,可以用pip install imageio pillow或者如果有conda,使用conda install imageio pillow也可以。注意没有管理员权限的时候要在管理员权限的cmd做(这两个脚本Linux下使用也没有问题)。
第一个脚本是将当前目录下所有的bmp文件按照文件名顺序制作成动画。
- #! /usr/bin/env python3
- # -*- Coding: UTF-8 -*-
- import imageio
- import os, sys
- import argparse
- parser = argparse.ArgumentParser(description = "Convert all bmp files to a gif animation.")
- parser.add_argument("--duration", type = float, default = 0.1, help = "Duration of each frame")
- parser.add_argument("--reverse", type = bool, default = False, help = "Whether reverse the animation or not")
- parser.add_argument("--loop", type = int, default = 1, help = "Loop how many times, 0 for infinite")
- parser.add_argument("--output", type = str, default = "out.gif", help = "Whether loop the animation or not")
- args = parser.parse_args()
- images = [imageio.imread(filename) for filename in sorted((fn for fn in os.listdir(".") if fn.endswith(".bmp")), reverse = args.reverse)]
- imageio.mimsave(args.output if args.output.endswith(".gif") else ".".join([args.output, "gif"]), images, duration = args.duration, loop =args.loop)
复制代码
有几个参数,用诸如python bmp2gif_animation.py --help可以查看参数用法。具体是--duration指定每帧时长,--reverse指定是否反转动画,--loop指定是循环次数,0是无限循环。--output指定输出文件名。
gif格式动画默认会被输出为工作目录下的out.gif,用浏览器等即可查看。
bmp2gif_animate.py
(916 Bytes, 下载次数 Times of downloads: 9)
|
评分 Rate
-
查看全部评分 View all ratings
|