标签 gif 下的文章

制作一个 GIF 可能是一件很有趣的事,很多用户可能都想如何制作一个 GIF。你可以使用功能强大的开源图像编辑软件 GIMP 创建一个非常简单的 GIF。

在这篇 GIMP 教程中,我将向你展示如何在 GIMP 中创建一个简单的 GIF。

在 GIMP 中制作一个 GIF

使用 GIMP 作为一个动画制作工具需要你把每个图层都看作动画的一帧。在这篇教程中,我将创建一个简单的基于我们的徽标的网页横幅。我将使用 2 个图像作为我的图层,但当你制作自己的 GIF 时,你可以随意添加更多的图像。

我在这里使用的方法叫做“组合法”,在这个方法中,新的帧被添加到先前的帧中。我的想法是制作一个“频闪”的网页横幅,来在对一些重要的事情引起注意。

我假设你已经 在 Ubuntu 或其它使用的操作系统中安装了 GIMP。让我们开始制作 GIF 吧。

步骤 1

从“文件”菜单中,单击“作为图层打开”,并选择你想包含在 GIF 中的所有图像。然后单击“打开”。

你可以排序图层标签页中的图像。GIF 的帧序列将从最下面的图层开始,从下到上运行每一层图层。

从主菜单中选择“滤镜”,接着选择“动画”,最后单击“优化(用于 GIF)”。

“优化”做了什么?

优化会检查每一个图层,如果来自前一帧的信息在下一帧中没有改变,则重复使用这些信息。它只存储新更改的像素值,并清除任何重复的部分。

如果一帧与前一帧完全相同,那么它将完全删除这一幅帧,并且前一帧将恰当地在屏幕上停留更长时间。

要查看该 GIF,从主菜单中单击“滤镜”,接着单击“动画”和“回放”。

按下“回放”按钮来启动 GIF。要保存该 GIF,在文件菜单上选择“文件”,单击“导出为”。

命名你的 GIF,并选择你想将其保存到的文件夹。在“选择文件类型”时,选择 “GIF 图像”。

当提示时,选择“作为动画”、“反复循环”,设置期望的延迟值,并单击“上面输入的延迟用于所有帧”来生效。

最重要的选项是设置帧处理动作为“累积各图层(组合)”,以便为我们的横幅获取“频闪”效果。单击“导出”作为最后一个步骤。

你的 GIF 已经准备好了!

这是一个浅显易懂的示例,不过 GIMP 在动画创作方面有很多能力,需要大量的学习和实践才能掌握它。


via: https://itsfoss.com/make-gif-in-gimp/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

今天我们要讨论一个广为人知的主题,我们也围绕这个主题写过许多的文章,因此我不会针对这个如何记录终端会话流程给出太多具体的资料。

我们可以使用脚本命令来记录 Linux 的终端会话,这也是大家公认的一种办法。不过今天我们将来介绍一个能起到相同作用的工具 — Terminalizer。

这个工具可以帮助我们记录用户的终端活动,以帮助我们从输出的文件中找到有用的信息。

什么是 Terminlizer

用户可以用 Terminlizer 记录他们的终端活动并且生成一个 Gif 图像。它是一个允许高度定制的 CLI 工具。用户可以在网络播放器、在线播放器上用链接分享他们记录下的文件。

推荐阅读:

目前没有发行版拥有官方软件包来安装此实用程序,不过我们可以用 Node.js 来安装它。

如何在 Linux 上安装 Node.js

安装 Node.js 有许多种方法。我们在这里将会教您一个常用的方法。

在 Ubuntu/LinuxMint 上可以使用 APT-GET 命令 或者 APT 命令 来安装 Node.js。

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

在 Debian 上使用 APT-GET 命令 或者 APT 命令 来安装 Node.js。

# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs 

在 RHEL/CentOS 上,使用 YUM 命令 来安装。

$ sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
$ sudo yum install epel-release
$ sudo yum -y install nodejs

在 Fedora 上,用 DNF 命令 来安装 tmux。

$ sudo dnf install nodejs

在 Arch Linux 上,用 Pacman 命令 来安装 tmux。

$ sudo pacman -S nodejs npm

在 openSUSE 上,用 Zypper Command 来安装 tmux。

$ sudo zypper in nodejs6

如何安装 Terminalizer

您已经安装了 Node.js 这个先决软件包,现在是时候在您的系统上安装 Terminalizer 了。简单执行如下的 npm 命令即可安装。

$ sudo npm install -g terminalizer

如何使用 Terminalizer

您只需要执行如下的命令,即可使用 Terminalizer 记录您的终端会话活动。您可以敲击 CTRL+D 来结束并且保存记录。

# terminalizer record 2g-session

defaultConfigPath
The recording session is started
Press CTRL+D to exit and save the recording

这将会将您记录的会话保存成一个 YAML 文件,在这个例子里,我的文件名将会是 2g-session-activity.yml。

# logout
Successfully Recorded
The recording data is saved into the file:
/home/daygeek/2g-session.yml
You can edit the file and even change the configurations.

如何播放记录下来的文件

使用以下命令来播放您记录的 YAML 文件。在以下操作中,请确保您已经用了您的文件名来替换 “2g-session”。

# terminalizer play 2g-session

将记录的文件渲染成 Gif 图像。

# terminalizer render 2g-session

注意: 以下的两个命令在此版本尚且不可用,或许在下一版本这两个命令将会付诸使用。

如果您想要将记录的文件分享给其他人,您可以将您的文件上传到在线播放器,并且将链接分享给对方。

terminalizer share 2g-session

为记录的文件生成一个网络播放器。

# terminalizer generate 2g-session

via: https://www.2daygeek.com/terminalizer-a-tool-to-record-your-terminal-and-generate-animated-gif-images/

作者:Prakash Subramanian 选题:lujun9972 译者:thecyanbird 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

作为一名文字工作者,我需要在我的文章中添加图片。有时为了更容易讲清楚某个概念,我还会添加视频或者 gif 动图,相比于文字,通过视频或者 gif 格式的输出,读者可以更容易地理解我的指导。前些天,我已经写了篇文章来介绍针对 Linux 的功能丰富的强大截屏工具 Flameshot。今天,我将向你展示如何从一段视频或者一些图片来制作高质量的 gif 动图。这个工具就是 Gifski,一个跨平台、开源、基于 Pngquant 的高质量命令行 GIF 编码器。

对于那些好奇 pngquant 是什么的读者,简单来说 pngquant 是一个针对 PNG 图片的无损压缩命令行工具。相信我,pngquant 是我使用过的最好的 PNG 无损压缩工具。它可以将 PNG 图片最高压缩 70% 而不会损失图片的原有质量并保存了所有的阿尔法透明度。经过压缩的图片可以在所有的网络浏览器和系统中使用。而 Gifski 是基于 Pngquant 的,它使用 pngquant 的功能来创建高质量的 GIF 动图。Gifski 能够创建每帧包含上千种颜色的 GIF 动图。Gifski 也需要 ffmpeg 来将视频转换为 PNG 图片。

安装 Gifski

首先需要确保你安装了 FFMpeg 和 Pngquant。

FFmpeg 在大多数的 Linux 发行版的默认软件仓库中都可以获取到,所以你可以使用默认的包管理器来安装它。具体的安装过程,请参考下面链接中的指导。

Pngquant 可以从 AUR 中获取到。要在基于 Arch 的系统安装它,使用任意一个 AUR 帮助程序即可,例如下面示例中的 Yay

$ yay -S pngquant

在基于 Debian 的系统中,运行:

$ sudo apt install pngquant

假如在你使用的发行版中没有 pngquant,你可以从源码编译并安装它。为此你还需要安装 libpng-dev 包。

$ git clone --recursive https://github.com/kornelski/pngquant.git
$ make
$ sudo make install

安装完上述依赖后,再安装 Gifski。假如你已经安装了 Rust 编程语言,你可以使用 cargo 来安装它:

$ cargo install gifski

另外,你还可以使用 Linuxbrew 包管理器来安装它:

$ brew install gifski

假如你不想安装 cargo 或 Linuxbrew,可以从它的 发布页面 下载最新的二进制程序,或者手动从源码编译并安装 gifski 。

使用 Gifski 来创建高质量的 GIF 动图

进入你保存 PNG 图片的目录,然后运行下面的命令来从这些图片创建 GIF 动图:

$ gifski -o file.gif *.png

上面的 file.gif 为最后输出的 gif 动图。

Gifski 还有其他的特性,例如:

  • 创建特定大小的 GIF 动图
  • 在每秒钟展示特定数目的动图
  • 以特定的质量编码
  • 更快速度的编码
  • 以给定顺序来编码图片,而不是以排序的结果来编码

为了创建特定大小的 GIF 动图,例如宽为 800,高为 400,可以使用下面的命令:

$ gifski -o file.gif -W 800 -H 400 *.png

你可以设定 GIF 动图在每秒钟展示多少帧,默认值是 20。为此,可以运行下面的命令:

$ gifski -o file.gif --fps 1 *.png

在上面的例子中,我指定每秒钟展示 1 帧。

我们还能够以特定质量(1-100 范围内)来编码。显然,更低的质量将生成更小的文件,更高的质量将生成更大的 GIF 动图文件。

$ gifski -o file.gif --quality 50 *.png

当需要编码大量图片时,Gifski 将会花费更多时间。如果想要编码过程加快到通常速度的 3 倍左右,可以运行:

$ gifski -o file.gif --fast *.png

请注意上面的命令产生的 GIF 动图文件将减少 10% 的质量,并且文件大小也会更大。

如果想让图片以某个给定的顺序(而不是通过排序)精确地被编码,可以使用 --nosort 选项。

$ gifski -o file.gif --nosort *.png

假如你不想让 GIF 循环播放,只需要使用 --once 选项即可:

$ gifski -o file.gif --once *.png

从视频创建 GIF 动图

有时或许你想从一个视频创建 GIF 动图。这也是可以做到的,这时候 FFmpeg 便能提供帮助。首先像下面这样,将视频转换成一系列的 PNG 图片:

$ ffmpeg -i video.mp4 frame%04d.png

上面的命令将会从 video.mp4 这个视频文件创建名为 “frame0001.png”、“frame0002.png”、“frame0003.png” 等等形式的图片(其中的 %04d 代表帧数),然后将这些图片保存在当前的工作目录。

转换好图片后,只需要运行下面的命令便可以制作 GIF 动图了:

$ gifski -o file.gif *.png

想知晓更多的细节,请参考它的帮助部分:

$ gifski -h

这是使用 Gifski 创建的示例 GIF 动图文件。

正如你看到的那样,GIF 动图的质量看起来是非常好的。

好了,这就是全部内容了。希望这篇指南对你有所帮助。更多精彩内容即将呈现,请保持关注!

干杯吧!


via: https://www.ostechnix.com/gifski-a-cross-platform-high-quality-gif-encoder/

作者:SK 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

虽然曾经被认为是过时的艺术形式,但动态GIF图片现在复苏了。如果你还没有留意到,不少在线分享和社交网络网站都开始支持动态GIF图片,例如,TumblrFlickrGoogle+Facebook的部分地方。由于在消费和共享上的容易,GIF的动画已经成为主流互联网文化的一部分了。

所以,你们中的一些人会好奇怎样才能生成这样的动态GIF图片。已经有各种各样专门用来生成动态GIF图片的在线或离线工具。另一种选择是创建一副动态GIF图片时关闭现有的视频剪辑。在这个教程中,我会描述在Linux上如何将一段视频文件转换成一副动态GIF图片

作为一个更有用的例子,让我展示如何将一个YouTube视频转换成一副动态GIF图片

第一步:下载YouTube视频

首先,下载一个你想要转换的YouTube视频。你可以使用youtube-dl这个工具将YouTube视频保存为MP4文件。假设你把你最爱的YouTube视频保存为"funny.mp4"。(译注:对于墙内的同学,请无视YT吧,自行去好人楼主那里寻找一个MP4吧,;-})

第二步:从视频中解压视频帧

接下来,在Linux系统上安装FFmpeg,我会用这个工具去解压从视频中解压出视频帧。

下面的指令会解压出独立的视频帧,将它们保存为GIF图片。确保使用诸如("out%04d.gif")的输出文件格式。这样,独立的帧就被合适地命名并保存。

ffmpeg -t  -ss  -i  out%04d.gif

例如,如果你想解压输入视频的视频帧,从第10秒开始,每5秒一帧,请运行下列命令。

$ ffmpeg -t 5 -ss 00:00:10 -i funny.mp4 out%04d.gif 

在完成FFmpeg之后,你会看到一组创建出来的GIF文件,它们被命名为"out[\d+].gif"。

第三步:合并视频帧进一副动态GIF

下面这一步要合并单个的GIF文件成一副动态GIF图片。为此,你可以使用ImageMagick。

首先,如果你还没有的话,在Linux系统上安装ImageMagick

convert -delay x -loop 0 out*gif 

在这个命令中,"-delay"是控制动态速度的选项。这个选项表示在显示下一帧画面前需要等待的秒数:帧数/每秒帧数 。"-loop 0"选项表示动画的无限次循环。如果你愿意,你可以指定"-loop N"让动画只重复N次。

例如,为了生成一副每秒20帧和循环无数次的动态GIF图片,使用如下命令。

$ convert -delay 1x20 -loop 0 out*.gif animation.gif 

第四步(可选):减少动态GIF的大小

最后这一步(可选)是通过使用ImageMagick的GIF优化功能来减少生成的GIF文件的大小。

使用下列命令去减少GIF大小。

convert -layers Optimize animation.gif animation_small.gif 

现在你已经准备好在你的社交网络上分享制作完成的GIF图片。

享受技术带来的乐趣吧!:-)


via: http://xmodulo.com/2013/11/convert-video-animated-gif-image-linux.html

译者:KayGuoWhu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出