用Ubuntu系统自带的截图很难抓好有动态效果的图片。有没有其它好用截图工具能截图gif动态图呢? 要是能截到.gif格式的动态图片那就更好啦。别急,Linux下也有简单好用的录制gif动态图的工具。
录制 gif 动画在很多时候都会派上用场。比如说,你需要向某个朋友演示软件的用法。现在有一个录制 GIF 动画的小工具值得大家试试,它的名字是 byzanz。
下面我就以Ubuntu 17.10下录制gif详细讲解过程,其他Linux发行版也一样简单。
先看效果图:
下载byzanz录制工具
可以使用图形界面的Ubuntu软件中心搜索byzanz或者通过apt-get下载。
命令:
linuxidc@linuxidc:~$ sudo apt-get install byzanz
[sudo] linuxidc 的密码:
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
下列软件包是自动安装的并且现在不需要了:
fonts-wine libieee1284-3:i386 libwine-development libwine-development:i386
ocl-icd-libopencl1:i386 wine32-development:i386 wine64-development
使用’sudo apt autoremove’来卸载它(它们)。
将会同时安装下列软件:
gstreamer1.0-libav
下列【新】软件包将被安装:
byzanz gstreamer1.0-libav
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 92 个软件包未被升级。
需要下载 195 kB 的归档。
解压缩后会消耗 888 kB 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 http://cn.archive.ubuntu.com/ubuntu artful/universe amd64 gstreamer1.0-libav amd64 1.12.2-1 [110 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu artful/universe amd64 byzanz amd64 0.3.0+git20160312-1 [85.1 kB]
已下载 195 kB,耗时 0秒 (564 kB/s)
正在选中未选择的软件包 gstreamer1.0-libav:amd64。
(正在读取数据库 … 系统当前共安装有 216229 个文件和目录。)
正准备解包 …/gstreamer1.0-libav_1.12.2-1_amd64.deb …
正在解包 gstreamer1.0-libav:amd64 (1.12.2-1) …
正在选中未选择的软件包 byzanz。
正准备解包 …/byzanz_0.3.0+git20160312-1_amd64.deb …
正在解包 byzanz (0.3.0+git20160312-1) …
正在设置 gstreamer1.0-libav:amd64 (1.12.2-1) …
正在设置 byzanz (0.3.0+git20160312-1) …
正在处理用于 man-db (2.7.6.1-2) 的触发器 …
正在处理用于 hicolor-icon-theme (0.17-1) 的触发器 …
linuxidc@linuxidc:~$
安装完成后打开终端输入
linuxidc@linuxidc:~$ byzanz-record –help
用法:
byzanz-record [OPTION…] 录制您的当前桌面会话
帮助选项:
-?, –help 显示帮助选项
–help-all 显示全部帮助选项
–help-gtk 显示 GTK+ 选项
应用程序选项:
-d, –duration=SECS 动画的时间 (默认:10 秒)
-e, –exec=COMMAND Command to execute and time
–delay=SECS 开始之前的延时(默认:1 秒)
-c, –cursor 录制鼠标光标
-a, –audio 录音
-x, –x=像素 要录制矩形的 X 坐标
-y, –y=像素 要录制矩形的 Y 坐标
-w, –width=像素 录制矩形的宽度
-h, –height=像素 录制矩形的高度
-v, –verbose 详细
–display=显示 要使用的 X 显示
linuxidc@linuxidc:~$
其中我们重点关注几个参数
* -d 动画录制的时间,默认录制10秒
* -e 动画开始延迟
* -x 录制区域的起始X坐标
* -y 录制区域的起始Y坐标
* -w 录制区域的宽度
* -y 录制区域的高度
byzanz-record –delay=5 -d 20 -x 163 -y 64 -w 1076 -h 843 ~/a.gif
–delay=5 表示延迟5妙
如何知道自己要在屏幕录制区域的坐标以及高度?系统自带有命令工具,输入xwininfo会提示你选择一个窗口,点击之后会返回这个窗口的详细信息 。测试机器的信息如下图
linuxidc@linuxidc:~$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x9b (has no name)
Absolute upper-left X: 0
Absolute upper-left Y: 0
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 1366
Height: 768
Depth: 24
Visual: 0x4b
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x4a (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: yes
Corners: +0+0 -0+0 -0-0 +0-0
-geometry 1366×768+0+0
linuxidc@linuxidc:~$
特别说明:
Absolute upper-left X: 开始的X坐标,绝对值
Absolute upper-left Y: 开始的Y坐标,绝对值
Width: 窗口宽度
Height : 窗口高度
只要有这四个数值我们就可以开始录制gif动态图了。
byzanz-record -x 0 -y 0 -w 800 -h 505 ~/x.gif
本文最上面就是一张就是byzanz录制的gif效果图。
因为这个是命令行工具,而且其中需要指定录像区域的坐标这些参数,但是你不可能那么清楚吧,有什么好的方式能获取到要录像区域的屏幕范围呢?Ubuntu下还有一个叫做xdotool,可以获取到当前鼠标位置,这样一来,你就可以算出你要录像区域的坐标位置了。
安装xdotool:
sudo apt-get install xdotool1
命令行输入:
xdotool getmouselocation1
把鼠标移到要录入的位置,然后敲击回车确认命令,显示如下:
x:872 y:588 screen:0 window:713033471
其中就可以知道x和y的坐标,进而获得byzanz-record需要的参数。
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149800.htm