鱼C论坛

 找回密码
 立即注册
查看: 11224|回复: 64

[作品展示] 录屏转GIF脚本之 -- 鱼C闪耀屏幕捕捉器

[复制链接]
发表于 2023-7-15 00:12:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
录屏转GIF脚本之 -- 鱼C闪耀屏幕捕捉器


前两天看到有鱼油需要一个录屏转 GIF 的工具,说是为了方便发原创帖申请精华~



在网上搜索了一番,着实没有找到好用且顺手的,于是咱们求人不如求己,开拔!


程序功能:

  • 支持帧率设置
  • 支持时长设置
  • 支持压缩等级设置
  • 选取录屏区域实时显示分辨率
  • 录屏开始 3 秒倒计时
  • 录屏区域与非录屏区域区分
  • 录屏最后 5 秒会出现闪耀倒计时

所以,这个玩意儿我们就叫它闪耀捕捉器吧~



2023-07-14_23-48-49.png


模块需求:

为了使用上的方便,所需的模块我尽可能使用 Python 官方自家的:

  • 界面 -> tkinter
  • 计时 -> time
  • 多线程 -> threading
  • 网络下载 -> urllib.request
  • 临时文件 -> tempfile
  • 录屏转存 -> pillow

没错,这里面只有 pillow 是需要大家自行安装的模块。


开发思路:

核心部分通过 pillow 的 ImageGrab.grab() 捕获指定位置的图像,并按顺序保存为 GIF 图片。

由于 ImageGrab.grab() 获取的屏幕截图是 RGB 格式的图像,这意味着每个像素使用 24 位颜色。24 位颜色允许显示大约 1670 万种颜色(224)。

这里我们通过减少颜色的数量(轻度压缩 -> 256色,中度压缩 -> 128色,重度压缩 -> 64色),来达到显而易见的文件尺寸压缩效果。

不过要注意,降低颜色数量会导致图像质量降低,因为会损失部分原始颜色信息。然而,在许多情况下,使用较少的颜色仍然是可以产生令人满意的结果(比如小甲鱼这种纯素桌面……)。

另外一个可以显著压缩文件尺寸的方案就是降低帧率,大家可以自己挑,这里默认是 10 帧,表示每秒钟捕捉 10 张图像。

然后有一个要点,就是录屏并保存的部分,建议采用多线程方案。这是为了避免在保存 GIF 图片期间造成的“卡顿”现象(相当于各干各的,不用等)。

会用到 urllib.request 和 tempfile 模块,是因为我们需要加载 FishC 的 ico 图标,不然还得提供离线版,太麻烦了~

最后就是那个录屏过程的 “红色透明框” 和结束前 5 秒的 “闪耀” 效果,其实是通过 4 个 toplevel 进行拼接实现的。

好像没有什么特别复杂的东西,代码做了相对详细的注释,大家可以参考一下。

抛砖引玉,期待看到大家深度魔改后的作品~




源代参考:

游客,如果您要查看本帖隐藏内容请回复






评分

参与人数 7荣誉 +27 鱼币 +27 贡献 +12 收起 理由
cjjJasonchen + 5 + 5 + 3 太酷啦!
额外减小 + 1 + 1
zhangjinxuan + 5 + 5 大家好,我是“有鱼油”~
liuhongrun2022 + 5 + 5 + 3
las6040 + 1 + 1 感谢楼主无私奉献!
python爱好者. + 5 + 5 + 3 鱼C有你更精彩^_^
歌者文明清理员 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-7-15 13:30:20 | 显示全部楼层
在线感受:

评分

参与人数 2荣誉 +9 贡献 +6 收起 理由
cjjJasonchen + 5 + 3 感谢楼主无私奉献!
python爱好者. + 4 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2025-7-18 22:40:06 | 显示全部楼层
不错的小工具
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-18 22:28:23 | 显示全部楼层
cjjJasonchen 发表于 2025-7-18 12:49
@小甲鱼   好像因为不能从论坛下载的icon图标,这个现在用不了了,我把程序里面icon的内容删掉就可以用了

感谢指出,ilovefishc.com 主站重新架构,导致 icon 的位置发生了改变~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-7-18 12:49:40 | 显示全部楼层
@小甲鱼   好像因为不能从论坛下载的icon图标,这个现在用不了了,我把程序里面icon的内容删掉就可以用了

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +3 C币 +3 收起 理由
小甲鱼 + 3 + 3 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-6-3 16:46:25 | 显示全部楼层
感谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-26 19:10:26 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-1-25 11:50:32 | 显示全部楼层
小甲龟出品,必须BBJ
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-1-22 12:12:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-1-22 00:13:40 | 显示全部楼层
6666666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-24 20:05:16 | 显示全部楼层
过来支持的鱼油
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-13 12:04:13 | 显示全部楼层
本帖最后由 zxbin1 于 2024-5-1 12:04 编辑

录制位置不对呀? screen_record.gif
@fishc
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-6 23:10:49 | 显示全部楼层
太优秀啦!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-25 08:28:12 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-23 14:55:15 | 显示全部楼层
能下载使用吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-29 13:48:47 | 显示全部楼层
看看源码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-3 16:59:04 From FishC Mobile | 显示全部楼层
支持你啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-1 20:30:19 | 显示全部楼层
感谢小甲鱼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-1 10:15:39 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 11:56:57 | 显示全部楼层
康康,支持一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-30 15:47:23 | 显示全部楼层
一定要用!%%%orz
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-22 08:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表