参考:

  • http://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast

1、软件安装

$ sudo apt-get install byzanz

2、脚本下载

1)byzanz-record-window.sh

#!/bin/bash# Delay before starting
DELAY=10# Sound notification to let one know when recording is about to start (and ends)
beep() {paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}# Duration and output file
if [ $# -gt 0 ]; thenD="--duration=$@"
elseecho Default recording duration 10s to /tmp/recorded.gifD="--duration=10 /tmp/recorded.gif"
fi
XWININFO=$(xwininfo)
read X < <(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y < <(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W < <(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H < <(awk -F: '/Height/{print $2}' <<< "$XWININFO")echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; doecho $isleep 1
donebeep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D
beep

2)byzanz-record-region.sh

#!/bin/bash# Delay before starting
DELAY=10# Sound notification to let one know when recording is about to start (and ends)
beep() {paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}# Duration and output file
if [ $# -gt 0 ]; thenD="--duration=$@"
elseecho Default recording duration 10s to /tmp/recorded.gifD="--duration=10 /tmp/recorded.gif"
fi# xrectsel from https://github.com/lolilolicon/xrectsel
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; doecho $isleep 1
done
beep
byzanz-record --verbose --delay=0 ${ARGUMENTS} $D
beep

3)byzanz-record-window-gui.sh

#!/bin/bash# AUTHOR:   (c) Rob W 2012, modified by MHC (http://askubuntu.com/users/81372/mhc)
# NAME:     GIFRecord 0.1
# DESCRIPTION:  A script to record GIF screencasts.
# LICENSE:  GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# DEPENDENCIES:   byzanz,gdialog,notify-send (install via sudo add-apt-repository ppa:fossfreedom/byzanz; #                 sudo apt-get update && sudo apt-get install byzanz gdialog notify-osd)# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")# Delay before starting
DELAY=10# Standard screencast folder
FOLDER="$HOME/Pictures"# Default recording duration
DEFDUR=10# Sound notification to let one know when recording is about to start (and ends)
beep() {paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}# Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)# Duration and output file
if [ $USERDUR -gt 0 ]; thenD=$USERDUR
elseD=$DEFDUR
fi# Window geometry
XWININFO=$(xwininfo)
read X < <(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y < <(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W < <(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H < <(awk -F: '/Height/{print $2}' <<< "$XWININFO")# Notify the user of recording time and delay
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."#Actual recording
sleep $DELAY
beep
byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif"
beep# Notify the user of end of recording.
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif"

3、安装脚本依赖的程序

1)克隆代码

  • https://github.com/lolilolicon/xrectsel.git

2)编译安装

./bootstrap  # required if ./configure is not present
./configure --prefix=/usr
make
$ sudo make instal

注:在执行

./bootstrap

时若出现以下错误

./bootstrap: line 1: autoreconf: command not found

解决办法是:

$ sudo apt-get install autoconf

4、配置脚本执行权限

$ sudo chmod 755 ./byzanz-record-region.sh
$ sudo chmod 755 ./byzanz-record-window.sh
$ sudo chmod 755 ./byzanz-record-window-gui.sh

5、使用方法

./byzanz-record-region.sh duration-seconds save-file-name // 使用鼠标选择要记录的区域
./byzanz-record-window.sh duration-seconds save-file-name // 默认选择整个屏幕

6、试用效果如下

./byzanz-record-region.sh

7、为方便以后使用可以将其添加至环境变量中

Enjoy it.

转载于:https://www.cnblogs.com/aqing1987/p/4209551.html

linux 使用 byzanz 生成 gif 图片程序相关推荐

  1. 分享一个python生成ico图片程序

    分享一个python生成ico图片程序 利用python PIL 进行ico 生成,课利用web框架扩展开发出网页版本. # -*- coding: utf-8 -*- from PIL import ...

  2. matlab生成全黑图片,程序第一次可以运行,第二次运行图片是全黑的

    本帖最后由 兔子mm 于 2018-4-3 21:40 编辑 前面的大段代码都没有问题,当进行到对膨胀后的图片进行腐蚀的最后一段代码时出现图片全黑情况,求前辈告知最后的代码问题出现在哪里 A=imre ...

  3. linux下qt生成可安装的程序,linux – 如何为Qt应用程序创建“安装”包?

    您可以从项目中创建debian包.据我所知,你想创建一个用于分发的包,所以我建议你从你的项目中创建一个debian包. Here是Debian Packaging系统的介绍.在文章中,他们在某些时候描 ...

  4. linux下生成guid,在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。...

    在Linux下编写生成GUID的程序,如下 guid.c 文件: #include #include void uuid2string(const uuid_t uu, char* const str ...

  5. Linux 系统下生成的海报的图片显示不了中文 原来是因为这个啊 新的知识点^_^

    微信小程序端有关于一篇文章生成一张海报图片,用于用户保存之后分享,这个是我在上一篇的文章分享了关于在Java后台生成一张海报图片的文章.发布之后又遇到了新的问题现在分享给有需要的人.原因及解决方法:由 ...

  6. 小程序---canvas画图,生成分享图片,画图文字换行

    小程序目前只支持转发,不支持分享朋友圈,为了能实现分享,很多线上小程序通过生成分享图片,保存到相册来给用户增加分享的可能. 具体思路及简要代码如下: 一:canvas画图drawCanvas:func ...

  7. 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈

    小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈 一.概述 需要用到的生成二维码组件(可自行下载添加到小程序根目录utils里):https://github.com/demi52 ...

  8. java createjpeg4_在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题

    在rh8   linux   下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片,XServer已启动.出现如下问题 错误提示如下 java.lang.Int ...

  9. 【愚公系列】2022年08月 微信小程序-view生成分享图片

    文章目录 前言 一.view生成分享图片 1.组件的封装 2.组件的使用 3.效果 4.第三方工具的使用 前言 微信小程序并不支持view直接转绘到画布上,想要实现海报功能必须通过以下4个步骤: 通过 ...

最新文章

  1. 自己做站点(二) 20块钱搞定一个企业站:域名amp;空间申请
  2. 【项目管理】记第一次出差到客户现场推进项目验收感悟-后续1
  3. GitLab CI/CD
  4. 艾伟_转载:WPF/Silverlight陷阱:XAML自定义控件的嵌套内容无法通过名称访问
  5. Java 容器源码分析之 TreeMap
  6. java invokelater 以及invokeandwait
  7. vue 本地预览多图上传
  8. pandas空值填充
  9. 适合初学者的linux开发板
  10. php 生产管理系统,erp的生产管理系统
  11. 鱼塘钓鱼(fishing)
  12. 云计算发展趋势好不好 学后能胜任哪些岗位
  13. Grid 不能动态添加数据这是为什么呢!
  14. 看到了便有增加福慧机会的好文
  15. python 仪表盘 ppt_Python之pyecharts数据可视化,词云图,仪表盘!
  16. session机制详解
  17. 样条曲线长度--数值积分
  18. 6.1、减肥计划,不死神兔,百钱百鸡案例
  19. 出差忘带电脑脑袋炸裂?鼓捣了下个人云,真香
  20. 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡...

热门文章

  1. python 持续集成_使用jenkins和Gitlab进行Python项目的持续集成
  2. rtsp,rtp,gb28181直接转化为html5播放(二)
  3. httpclient 手写
  4. c语言边界条件的设置,求解能不能用c或c++语言实现下面的约束条件
  5. java代码加载_java类中代码加载顺序
  6. 获取时间CLOCK_MONOTONIC学习——顺记第一次与开源项目交互
  7. 我的内核学习笔记4:sysfs学习
  8. u-boot移植随笔:u-boot shell与ASCII码
  9. 【Flink】flink Operator State 的使用及Redistribute listState UnionListState
  10. 【FLink】Flink checkpoint 实现数据连续计算 恢复机制 案例实战