我一直在寻找一种方法来将动画 GIF 从给定的 URL 编码为 base64,而无需使用 jquery 等外部库(如果绝对必要,我会使用它)。我有 found results将静态图像编码为 base64,但它们都使用 canvas
,而 canvas.toDataURL()
只会编码动画 GIF 的单帧。有没有一种方法可以在不使用 canvas
的情况下将动画 GIF(或与此相关的任何图像)编码为 base64?
最佳答案
是的,您可以使用 FileReader.readAsDataURL()
(example based on MDN web docs) :
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
var base64gif = reader.result; // your gif in base64 here
preview.src = base64gif;
document.getElementById('base64').innerHTML = base64gif;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
Upload your gif:<br/>
<input type="file" onchange="previewFile()"><br/>
<div id="base64" style="max-width: 200px; float: left; overflow-wrap: break-word;"></div>
<img src="" height="200" alt="Gif preview...">
关于javascript - 将动画 GIF 编码为 Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22124454/