怎么录屏制作gif(极简录屏一键粘贴)

小轻快、可直接播放的 GIF 小动画很适合嵌入图文。

但是很多图文编辑器复制粘贴 GIF 图像都会出现问题。例如粘贴GIF 变成一帧静态图像,或提示无效图像,或粘贴正常但发布上传时报错 …… 然后我们只能挨个 GIF 都重复一遍:录屏 > 压缩 > 保存 > 添加图像 > 上传 > 插入文章 ……

使用极简录屏软件 Gif123 可以大幅简化上面的操作:Gif123 可以一键录屏,一键复制动画,在图文编辑器里 Ctrl V 一下粘贴动画就可以解决所有问题。Gif123 复制的 GIF 格式拥有良好的兼容性,不会动画变静态图像,不会提示无效图像,上传时不会报错。

Gif123 简介

Gif123 是一个开源软件,体积很小只有 755KB,独立 EXE 无任何外部依赖,兼容 Windows XP,Vista,Win7,Win8,Win10,Win11 …… 等所有流行桌面操作系统。

怎么录屏制作gif(极简录屏一键粘贴)(1)

软件极简单,只有 3 个主要按钮:录制、预览、复制。

Gif123 主窗口就是录屏选框,可拖动选框选择要录制的区域。相比很多更复杂更强大的 GIF 录制工具,Gif123 的操作非常简单,一看就会。

Gif123 虽然很小,但是在 GIF 有限的颜色限制下仍然可以显著提升画质。录制完成以后可自动调用强悍的 Gifsicle 压缩 GIF 文件体积。并且在高分屏下可自动压缩 GIF 至正常分辨率 —— 以避免浏览图像时重复放大。

Gif123 可录制合成鼠标轨迹,可调整鼠标指针大小,可在设置中打开鼠标指针高亮光圈功能,高亮光圈可跟随鼠标移动以指示鼠标位置,单击鼠标时会显示动画光圈( 光圈颜色透明度为0 时仅显示单击动画 ):

怎么录屏制作gif(极简录屏一键粘贴)(2)

按左键光圈就会向左侧压缩成半圆,按右键光圈就会向右侧压缩成半圆,按中键就会向内侧缩小为小圆。很多录屏软件仅用颜色区分左右按键 —— 说实话这可能只有录屏的人明白,看动画的人估计分不清。

Gif123 最小化时按录屏热键可显示快速选框:

怎么录屏制作gif(极简录屏一键粘贴)(3)

切换到预览模式且暂停后可编辑动画帧,在预览动画上点右键可弹出菜单,可以暂停动画帧( 在图像上按回车可以快速「暂停 / 继续」播放动画 ),动画暂停状态下可以使用鼠标滚轮、帧滑块控件、Page Up/Down ……等手动翻页,暂停状态可以方便地抽帧删帧。

怎么录屏制作gif(极简录屏一键粘贴)(4)

预览模式可在上图界面底部的输入框中重新设置优化参数。在参数输入框中点任何一个参数的任何位置,按鼠标滚轮可以快速调整数值,如下图:

怎么录屏制作gif(极简录屏一键粘贴)(5)

可实时预览优化效果与优化后的文件体积。重新优化总是基于原始图像 —— 上次优化设定不会影响当前优化效果。

我为什么要开发 Gif123

Gif123 是我使用 aardio 开发的。至于 aardio 也是我开发的编程语言。关于 aardio 请参考文章:2022年,开发独立 EXE 桌面应用程序,用什么语言、技术合适

GIF 还是非常有用的,很多时候我们需要这种小、简单、不复杂又够用的东西。GIF 录屏的工具虽然很多,但是用着用着有时候就发现不需要的功能很多,需要的功能它又没有或者不方便,所以我决定自己用 aardio 写一个,实际上要不了几句代码。

开发经验分享:揭开剪贴板的秘密

GIF 录制好了,我们一般当然是复制并分享了,如果我们打开图像再去复制还是有些麻烦,能一键复制多好。但是这个看起来简单的事 —— 还真是有些麻烦,首先系统剪贴板其实并不支持 GIF 图像,所以很多软件里复制 GIF 只复制了第一帧。

但是我们发现 IE 是可以复制GIF的,有的文章说通过复制HTML就可以了,用 aardio 来写实际上就是这样:

import win.clip.html; var html = win.clip.html(); html.write(`<img src="c:\test.gif" />`)

网上很多文章都这么写,但实际上根据我的测试,这样复制 GIF 以后浏览器或者其他一些软件里并不能粘贴。

这个其实可以理解,浏览器是没有权限访问本地文件的,即使他得到了剪贴板中的HTML,也没有权限去读任意位置的本地文件,考虑到了这一点,我决定把本地图像转换为 Data URL 直接嵌入HTML,主要代码如下:

import win.clip.html; import crypt; var html = win.clip.html(); var dataUrl = string.format('data:image/gif;base64,%s' ,crypt.encodeBin( string.loadBuffer(filePah),,0x40000001/*_CRYPT_STRING_BASE64*/) ); html.write(`<img src="` dataUrl `" />`,,false);

上面的代码实现了以后,我在浏览器图文编辑器里测试了一下,用这种方法复制一个 GIF 文件以后,再到编辑器里 Ctrl V 粘贴,看到了 GIF 动画在编辑器里显示出来了,还没高兴零点几秒,弹出一个错误信息:粘贴图像失败。看了一下是远程错误,猜测他把这个当作普通远程图像地址去处理了。

然后在其他聊天软件里试着粘贴了一下,也没任何反应。看来此路不通。看到有人说可以复制为 CF_HDROP 格式,好吧,aardio 干这事倒也方便,代码如下:

import win.clip.file; win.clip.file.write( filePath );

其实这等价于在资源管理器里右键复制文件。用上面的方法复制了图像以后,到聊天软件里粘贴试了一下,粘贴出来的是一个文件图标,并没有认出是 GIF 动画。

想起之前看到有人说:

IE 能复制 GIF,但是在剪贴板里看到的只是静态的 BMP 图像,不知道 IE 是如何实现的,

难道 ……

于是试着在剪贴板里先复制 GIF 第一帧的静态图像,再复制文件本身(同时复制2种格式),用这种方法复制了一个 GIF 图像,然后到 聊天工具里粘贴,这回粘贴出来的还真是 GIF 动画 ,直接就显示预览动画了 —— 完美!

然后打开浏览器编辑器,试着粘贴了一下,遇到2种不同的反应,第1种是出现了静态图像 —— 没动画,第2种是静态图像也没有,细节没有深究。想起之前复制 Data URL 失败的过程,这难道是 …… 于是赶紧换第 3 种方法,复制第一帧静态图像,复制文件,然后再复制 Data URL ,一气呵成三连击以后终于成功了,浏览器编辑器里完美粘贴出来 GIF 动画,试了很多软件以及图文编辑器也都能完美支持。

于是,我又加了一个库 win.clip.gif,用起来就太简单了:

import win.clip.gif; win.clip.gif.write( filePath );

您看这就是 aardio 的好处了,像这种库一天能写一打出来,再复杂的代码都可以简化,这得益于 aardio 良好的模块化支持。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页