我只尝试显示一次 gif。
所以我使用这段代码来实现这一点。
var ui_img = document.getElementById("ui_image");
ui_img.hidden = false;
setTimeout(function () {
ui_img.hidden = true;
}, 8000);
但我知道所有 gif 的持续时间并不相同。
我该如何解决这个问题?
你可以尝试使用这个库gifuct-js https://github.com/matt-way/gifuct-js.
主要用途parseGIF()
, then decompressFrames()
获取每个具有属性的帧数组delay
:显示帧的时间量。因此,您可以将所有帧延迟相加,以获得 GIF 图像的总持续时间。
使用示例 - 来自其 Github 页面的修改后的代码示例:
import { parseGIF, decompressFrames } from 'gifuct-js'
var oReq = new XMLHttpRequest();
oReq.open("GET", gifURL, true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response; // Note: not oReq.responseText
if (arrayBuffer) {
var gif = parseGIF(arrayBuffer);
var frames = decompressFrames(gif, true);
// do something with the frame data
// get total time in ms
var totalTime = frames
.map(frame => frame.delay)
.reduce((a, b) => a + b);
}
};
oReq.send(null);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)