将动画GIF编码为Base64

joc*_*pa3 6 javascript base64 animated-gif

我一直在寻找一种方法来将动画GIF从给定的URL编码到base64而不使用像jquery这样的外部库(如果绝对必要,我将使用它).我找到了将静态图像编码为base64的结果,但它们都使用了canvas,并且canvas.toDataURL()只编码动画GIF的单帧.有没有办法将动画GIF(或任何图像)编码到base64而不使用canvas

fal*_*lla 5

是的,您可以使用FileReader.readAsDataURL() (基于 MDN 网络文档的示例)

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);
  }
}
Run Code Online (Sandbox Code Playgroud)
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...">
Run Code Online (Sandbox Code Playgroud)