或许是站内文章经常出现 Gif 演示图的缘故,每次打开少数派,总是能在网站侧边栏的留言区看到「这种 Gif 动态图是怎样生成」的评论,令人难过的是,此类评论几乎没人回复。难得空闲,今期我们来简单了解一下从屏幕录制到高质量 Gif 转制必经的几个步骤。

录制屏幕

转制 Gif 前,你需要将目标应用出色的交互动画以视频的形式记录下来。

录制屏幕有很多方法,比如说 iOS 设备可通过 OS X 自带的 QuickTime Player 或 Windows 的第三方软件 X-Mirage 进行,详见:

Android 可选择的解决方案也有很多:

如果你的设备已升级到 Android 5.0,可使用专门针对 Android Lollipo 开发的 AZ Screen Recorder。这是我最喜欢的一款录屏应用,无广告、无水印、免 Root,打开即可直接在手机上完成屏幕录制操作。

如果你的手机系统版本仍然停留在 Android 4.4,并且由于保修、厂家限制等因素无法获取 Root 权限,可将手机与电脑相连,通过 ADB 命令进行录入,详细教程:《Android 4.4 原生屏幕录制使用详解》

对于已获取 Root 权限的 Android 设备来说,SCR Screen Recorder 将是你的不二选择,授予其 Root 权限并开启悬浮窗,便可正常工作。

TIP:由于录制屏幕的主要用途是作为教程演示,因此在录制屏幕之前,最好让触控操作可视化。操作如下:进入系统设置 - 开发者选项,勾选「显示触摸操作」。之后,你会发现有一个「小白点」一直跟随着你的指尖移动,如同 PC 端上的鼠标一样

视频转 Gif

进入正题,这里我将演示如何在 PhotoShop 上将视频转制成 Gif 。当然,除去 PhotoShop,你还有其他选择:Android 端有 Video To GIF,OS X 有 Gifrocket,Windows 上的百度浏览器甚至可以将在线视频转成 Gif。但上述应用实际效果都称不上理想,因此在处理 Gif 的时候,我还是会习惯性的打开 PhotoShop。

考虑到 PhotoShop 的操作门槛可能有点高,文章引用了一篇刊登在百度经验上的基础教程,若然你刚接触 PhotoShop,可以将其作为一个补充,这边我们着重提一下网上教程所忽略到的要点。

1. 导入视频

目前 PhotoShop 支持 avi、mov、mp4、swf 等常见视频格式,在菜单栏执行「文件 - 导入 - 视频帧到图层」操作并选中目标视频,这时候应用就会弹出一个对话框,元素不多,只有「导入范围」、「限制为每隔 x 帧」两个选项,外加一个视频预览窗口。

关于上述两个选项,下为简单注释:

导入范围:尽可能不要选择「从开始到结束」,精准截取起始时间能有效降低后期处理成本。

限制为每隔 x 帧:决定一个视频 / Gif 是否流畅,帧率是重要组成因素。理论上来说,数值越大,Gif 越流畅,但考虑到生成的 Gif 体积,势必需要适当调低这些参数,以在小体积和高质量之间做一下权衡。而这个选项存在的意义就是它可以根据用户的实际需求降低帧率。

举个例子,若导入的视频帧率为每秒 30 帧,当 x = 3 ,则 Gif 帧率为每秒 10fps,每帧停留 0.1 秒;当 x = 5,则 Gif 为每秒 6fps,每帧停留 0.16 秒。对于 Gif,我认为比较理想的状态是控制在每秒 8 - 10fps,一来可以保证画面连贯不卡顿,二来也可以将体积控制在一定范围内。

调整完毕后,保持「制作帧动画」选项不变,点击「确定」,应用就会自动生成帧动画。

2. 旋转图像

导入视频并制作帧动画后,画面很有可能呈颠倒状态,像这样。

出现这种情况,请在主菜单执行「图像 - 图像旋转 - 90 度 (顺时针)」操作,将图像调整为正常状态。

3. 调整图片大小

如果你希望这些 Gif 图能在社交网络图片得到广泛传播,最好将图片宽度控制在 440px 以内,这样上传到微博就可以直接显示动态效果,无需额外叮嘱「不动戳大」。

4. 逐帧校对

接下来,让我们将目光聚焦到屏幕底部的「时间轴」(看不到的同学请点击 PhotoShop 主菜单 - 窗口,勾选「时间轴」),看到图像右下角的箭号没,轻触可单独设置每帧的展示时间,按住 Shif 键选中多个帧可批量设置。

至于每帧停留多长时间请参照前文介绍「限制为每隔 x 帧」时所用到的公式,如不确定,可以先选择一个较为稳妥的数值(如 0.1),再根据预览效果进行微调(轻触时间轴的「播放」按钮可预览 Gif 效果)。

到了这步,教程就基本告一段落了。但是,如果你细心观察文章开篇的那个效果图,你就会发现其实图片对部分敏感信息进行了遮挡处理,比如好友昵称。当然,这并不是什么高级技巧,我们一步步来:

  1. 按住 Shift 键选中时间轴所有的图片帧
  2. 新建一个图层(注意,是图层,不是图片帧),并置顶显示
  3. 切换到选区工具,选中你需要遮挡的内容
  4. 填充颜色

好了,大功告成,预览一下看看。顺带一提,这个方法最合适的使用场景并不是遮挡内容,而是给 Gif 打水印,像这样。

5. 保存/导出

将一切都调成你想要的样子之后,点击「文件 - 存储为 web 和设备所用格式」,在弹出的窗口中将图片格式设为 Gif,点击「储存」按钮即可。

好了,教程就此结束,希望对你有所帮助。