GIF录制工具源码 可录制鼠标编辑帧

易语言 2019-10-15 20:08:36

GIF录制工具源码 可录制鼠标编辑帧

1.带鼠标录制,不是固定的一个普通鼠标指针

2.加入了编辑帧的功能,目前只加入了删除功能

3.增加了几个常用设置

动态创建菜单,超详细备注,包括API也有比较详细的备注

可以自己去搜一下GIF文件结构,弄好之后可以自己写个支持库或者模块,自己写算法压缩。

.判断开始 (参数一 = #常量_正序)
局部_帧计次 = 0 ' 如果是正序,那就帧是从0+1开始计算
局部_递增 = 1 ' 每次递增1
局部_开始 = 1 ' 开始是从1开始
局部_结束 = 取数组成员数 (全局_数据组)
.判断 (参数一 = #常量_倒序)
局部_帧计次 = 全局_总帧数 + 1
局部_递增 = -1
局部_开始 = 取数组成员数 (全局_数据组)
局部_结束 = 1
.默认

.判断结束
.变量循环首 (局部_开始, 局部_结束, 局部_递增, i) ' 正序就顺序读取,否则就从最后倒着读取
局部_计次 = 局部_计次 + 1
局部_帧计次 = 局部_帧计次 + 局部_递增 ' 得自己做循环计次,因为有可能会写到本地,写到本地的计次又是从新赋值了,所以要自己做一个计次
局部_图片数据 = 全局_数据组 [i] ' 这里得用循环的计次,否则 如果有数据写到本地,那么数组下标就会越界
子程序_加入动画帧 (局部_图片数据, 局部_帧计次, 局部_计次) ' 帧信息的话,不能用循环的计次,否则有数据写到本地,那么读取的帧信息会不准确
.变量循环尾 ()
.如果真 (取数组成员数 (全局_数据组) ≠ 全局_总帧数 或 窗口_设置.单选框_使用硬盘.选中) ' 如果总帧数跟数组成员数不一样,代表有数据被写到本地
.计次循环首 (取记录数 (), )
局部_计次 = 局部_计次 + 1
局部_帧计次 = 局部_帧计次 + 局部_递增
局部_图片数据 = 读 (“图片”)
输出调试文本 (取记录号 ())
跳过 (局部_递增) ' 正序往后跳,倒序往前跳 1 和 -1
子程序_加入动画帧 (局部_图片数据, 局部_帧计次, 局部_计次) ' 帧信息的话,不能用循环的计次,否则有数据写到本地,那么读取的帧信息会不准确
.计次循环尾 ()
.如果真结束
标题 = “当前帧数:” + 到文本 (全局_总帧数)
局部_结果 = 程序集_动画.保存GIF图片 (局部_文件路径)
连续赋值 (假, 窗口_进度.可视, _启动窗口.禁止)
窗口_进度.进度条1.位置 = 0
.判断开始 (局部_结果)
信息框 (#常量_版权 + #换行符 + #换行符 + “导出成功”, #信息图标, #常量_版权, _启动窗口) ' 这里的信息框要加个父窗口,不然会被启动窗口给覆盖了,因为启动窗口是在最顶层的
.默认
信息框 (#常量_版权 + #换行符 + #换行符 + “导出失败”, #错误图标, #常量_版权, _启动窗口)
返回 (假)
.判断结束
程序集_动画.重置 () ' 保存成功后,把之前的数据清除
返回 (真)