因为GIF文件太大,想要实现截取GIF第一帧作为预览图,用户有兴趣自行点击才真正加载。
前端能进行这样的操作吗?或者, 是否有一种方法能够获取GIF文件加载的进度?
因为GIF文件太大,想要实现截取GIF第一帧作为预览图,用户有兴趣自行点击才真正加载。
前端能进行这样的操作吗?或者, 是否有一种方法能够获取GIF文件加载的进度?
可以的,我想到的有两种方式
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答814 阅读
代码不完整,提供一个思路:先以流的方式接收文件:
接收过程中,可以随时以gm获得第一帧,然后取消整个流就行了,这样应该能节省不少带宽:
我觉得流的方式可能也不太好,可以考虑用Range头部强行规定我们只获取最前面的1000个字节,然后进行判断。
比如这样:
然后,用libgif-js挪到第一帧,然后用canvas获取下来:
上面那个gm库不好,那个应该是只能运行在客户端,不能运行在浏览器里。
而且不知道只下载一部分的gif图片还能不能取出第一帧,这个需要实验一下。