linux如何编辑svg图片,如何将Linux终端录制成SVG动画

录制终端会话可以满足我们不同类型的需求。通过录制终端会话,你可以完整记录你在终端中执行的操作,将其保存以供后续参考。通过录制终端会话,你还可以向青少年、学生或其它打算学习 Linux 的人展示各种 Linux 命令及其用例。值得庆幸的是,市面上已经有不少工具,可以帮助我们在类 Unix 操作系统下录制终端会话。

48cae3e3eae67675e52c04ca4b6c41e1.png

今天,我们要介绍另一款录制终端操作的工具,名字叫做 Termtosvg。从名字可以看出,Termtosvg 将你的终端会话录制成一个单独的 SVG 动画。它是一款简单的命令行工具,使用 Python 语言编写,可以生成轻量级、外观整洁的动画,可以嵌入到网页项目中。Termtosvg 支持自定义色彩主题color themes、终端 UI,还可以通过 SVG 模板完成动画控制。它兼容 asciinema 录制格式,支持 GNU/Linux,Mac OS 和 BSD 等操作系统。

安装 Termtosvg

PIP 是一个面向 Python 语言编写的软件包的管理器,可以用于安装 Termtosvg。

安装 PIP 后,运行如下命令安装 Termtosvg 工具:

$ pip3 install --user termtosvg

此外,还要安装渲染终端屏幕所需的依赖包:

$ pip3 install pyte python-xlib svgwrite

安装完毕,我们接下来生成 SVG 格式的终端会话。

将 Linux 终端会话录制成 SVG 动画

使用 termtosvg 录制终端会话十分容易。打开终端窗口,运行如下命令即可开始录制:

$ termtosvg

注意: 如果 termtosvg 命令不可用,重启操作系统一次即可。

运行 termtosvg 命令后,可以看到如下命令输出:

Recording started, enter "exit" command or Control-D to end

你目前位于一个子 Shell 中,在这里可以像平常那样输入命令。你在终端中的所作所为都会被录制。

不妨随便输入一些命令:

$ mkdir mydirectory $ cd mydirectory/ $ touch file.txt $ cd .. $ uname -a

操作完成后,使用组合键 CTRL+D 或者输入 exit 停止录制。录制结果将会保存在 /tmp 目录,(由于做了唯一性处理)文件名并不会重复。

583d7077aa5977df6744fde6d28f11bd.png

现在,你可以在命令行运行命令,使用你的浏览器打开 SVG 文件:

$ firefox /tmp/termtosvg_ddkehjpu.svg

你也可以在(图形界面的)浏览器中直接打开这个 SVG 文件( File -> )。

我用 Firefox 浏览器打开的效果如下:

e09de8c0acde9f2262765e235e8e4ede.png

下面举例说明几种使用 Termtosvg 录制终端会话的方式。

我刚刚提到,Termtosvg 录制终端会话后默认保存成 /tmp 目录下的一个 SVG 动画文件。

但你可以指定 SVG 动画文件的文件名,例如 animation.svg;也可以指定一个存放路径,例如 /home/sk/ostechnix/。

$ termtosvg /home/sk/ostechnix/animation.svg

录制终端会话并使用特定模板进行渲染:

$ termtosvg -t ~/templates/my_template.svg

使用指定的屏幕参数screen geometry录制终端会话:

$ termtosvg -g 80x24 animation.svg

使用 asciicast v2 格式录制终端会话:

$ termtosvg record recording.cast

将 asciicast 格式的录制结果渲染成 SVG 动画:

$ termtosvg render recording.cast animation.svg

文章来源于: 孙有匪,版权归原作者所有,如有侵权,请联系 guanwang@163yun.com 删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 SVG 动画图片的代码示例,您可以根据您的需求进行修改: ```html <svg width="200" height="200"> <rect x="10" y="10" width="30" height="30" fill="#0077be"> <animate attributeName="x" from="10" to="150" dur="1s" repeatCount="indefinite"></animate> </rect> <circle cx="100" cy="100" r="30" fill="#00ffea"> <animate attributeName="r" from="0" to="50" dur="1s" repeatCount="indefinite"></animate> </circle> <polygon points="130,10 170,40 130,70 90,40" fill="#ffcc00"> <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 100 100" to="360 100 100" dur="2s" repeatCount="indefinite"></animateTransform> </polygon> </svg> ``` 解释一下上面代码的含义: - `<rect>` 标签用于定义一个矩形,其中 `x` 和 `y` 属性定义了矩形左上角的坐标,`width` 和 `height` 属性定义了矩形的宽度和高度。`fill` 属性定义了矩形的填充颜色。`<animate>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `x`。`from` 属性定义了动画的起始值,这里设置为 `10`。`to` 属性定义了动画的结束值,这里设置为 `150`。`dur` 属性定义了动画的持续时间,这里设置为 `1s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 - `<circle>` 标签用于定义一个圆形,其中 `cx` 和 `cy` 属性定义了圆心的坐标,`r` 属性定义了圆的半径。`fill` 属性定义了圆的填充颜色。`<animate>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `r`。`from` 属性定义了动画的起始值,这里设置为 `0`。`to` 属性定义了动画的结束值,这里设置为 `50`。`dur` 属性定义了动画的持续时间,这里设置为 `1s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 - `<polygon>` 标签用于定义一个多边形,其中 `points` 属性定义了多边形各个顶点的坐标。`fill` 属性定义了多边形的填充颜色。`<animateTransform>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `transform`,表示变换矩阵。`attributeType` 属性定义了属性类型,这里设置为 `XML`。`type` 属性定义了变换类型,这里设置为 `rotate`,表示旋转变换。`from` 属性定义了动画的起始值,这里设置为 `0 100 100`,表示从原始状态开始旋转。`to` 属性定义了动画的结束值,这里设置为 `360 100 100`,表示旋转一周。`dur` 属性定义了动画的持续时间,这里设置为 `2s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 您可以根据需要修改上述代码中的形状、颜色、动画时间等属性,以达到您想要的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值